这是我的设置详情
Nginx.conf
user nginx;
worker_processes 8;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 4096;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
我的conf文件,文件名默认为sites-available和sites-enabled
server {
server_name www.subdomain.mywebsite.com subdomain.mywebsite.com;
access_log /srv/www/subdomain.mywebsite.com/logs/access.log;
error_log /srv/www/subdomain.mywebsite.com/logs/error.log;
root /srv/www/subdomain.mywebsite.com/public_html;
location / {
index index.html index.htm index.php;
}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME /srv/www/subdomain.mywebsite.com/public_html$fastcgi_script_name;
}
}
当我通过我的域运行html文件时,它的工作正常。
但如果我去php文件,例如
subdomain.mywebsite.com/info.php
它给出了这个502 nginx的错误网关错误
发生问题时,Php5-fpm正在运行
root@ubuntu:/etc/nginx/sites-available# service php5-fpm status
php5-fpm start/running, process 12196
答案 0 :(得分:0)
这是典型响应的工作方式:向Nginx发送请求,Nginx代表客户端浏览器将该请求发送给PHP-FPM; PHP-FPM使用其评估的代码进行响应,然后将该响应发送回Nginx。在你的情况下,这仍然发生。问题是PHP-FPM没有发送你想要的结果。你想要对代码进行评估,但是它却说它无法读取代码,或多或少,所以它告诉Nginx它已经愚弄了,所以Nginx告诉客户端浏览器“网关”(上游服务器,是PHP) -FPM)正在冲洗;也就是说,它向客户端浏览器发送一个502响应,因为它无法向空白的老板展示。
这是什么意思?
毫不奇怪,这意味着权限是错误的。权限阻止PHP-FPM做它的事情。查找PHP-FPM的www.conf
文件,并调整listen.owner
,listen.group
,listen.mode
,user
和group
设置。另外,只需使用一个插座。这是在同一个地方配置的。实际上,我刚刚列出的权限设置只适用于套接字。不过,如果你想继续在监听端口上运行Nginx,它仍然是一个权限问题。
您的日志很容易说明这一点。你真的调查过这个问题吗?搜索引擎可能会被与此信息相关的结果所淹没。