解谜:开启https时显示php代码

当我尝试设置https(让nginx在443上使用ssl设置)并访问我的页面时,出现了令人惊讶的事情,我看到了我的php代码正在显示。

我在nginx config中看到这个fastcgi_pass 127.0.0.1:9000;

这是否意味着nginx将PHP请求直接转到9000端口? 我的https设置是这样的

server { listen 443; ssl on; ssl_certificate /etc/domain_com.crt; ssl_certificate_key /etc/domain.key; ssl_protocols SSLv3 TLSv1; ssl_ciphers ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM; server_name domain.com; } 

顺便说一句,我的原始结构是haproxy到Nginx。 希望有人在这方面有经验可以点亮我一点。 谢谢!

您错过了将请求上传到php-fpm的location ~ \.php 。 从服务于HTTP网站的server块中复制并粘贴。 除了特定于SSL的设置,两个server块应该可能是相同的。