最近我发现我的服务器输出了 php 代码。原因是 nginx 可以运行,但 php-fpm 无法运行。可以想象,这可能是一个严重的安全威胁。
那么,有没有办法阻止 nginx 提供 php 文件,除非它正在接收来自 php 引擎的响应?我认为这是在 nginx.conf 中进行一些简单的调整,但我还没有解决这个问题。希望有人能帮忙!
server {
listen 80;
server_name example.com;
location / {
root /usr/share/nginx/html;
index index.php index.html index.htm;
}
error_page 404 /404.html;
location = /404.html {
root /usr/share/nginx/html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root /usr/share/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
答案1
您可以编写一个 cron 作业来验证 php-fpm 服务是否正在运行,如果没有运行,则交换 nginx .conf 文件并重新启动 nginx。