难题:开启 https 时会显示 php 代码

难题:开启 https 时会显示 php 代码

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

我在 nginx 配置 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。希望有这方面经验的人能给我一点启发。谢谢!

答案1

您缺少location ~ \.php将请求上游传递到 php-fpm 的块。从为serverHTTP 网站提供服务的块中复制并粘贴它。除了 SSL 特定的设置外,这两个server块应该完全相同。

相关内容