我正在跟进设置 Ubuntu VPS 的指南作为 wordpress 的 nginx 网络服务器。
设置 Nginx 和 PHP 时,我使用的指南建议我取消注释此行/etc/nginx/sites-available/default
:
fastcgi_pass 127.0.0.1:9000;
完成此操作后,尽管服务器的欢迎页面可以正常工作,但是当我转到我创建的 php 文件(包含 phpinfo)时,出现 502 错误网关错误
但是,当我取消注释此行时:
fastcgi_pass unix:/var/run/php5-fpm.sock;
php 文件似乎加载成功
有人能解释一下每一行的作用以及为什么我用的那行有效,而教程中的那行无效吗?
答案1
当您使用“fastcgi_pass 127.0.0.1:9000;”时,nginx 会尝试使用端口 9000 上的 TCP 连接连接到 fastcgi,以便“解释”您的 php 文件。当使用“fastcgi_pass unix:/var/run/php5-fpm.sock;”时,它会尝试绑定到不使用网络堆栈的套接字文件。这是一种偏好方式,由于权限问题,TCP 套接字通常更容易设置。您不能同时连接到 TCP 端口和套接字。