我已使用 nginx+php-fpm 和 mysql 设置了服务器。我还有另一台仅安装了 php-fpm 的服务器,因此想将其用作负载平衡器。但是当我使用这台带有 php-fpm 的专用服务器作为负载平衡器时,打开页面时出现错误:“访问被拒绝。”
/etc/nginx/nginx.conf
user www-data;
worker_processes 3;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 64;
access_log /var/log/nginx/access.log;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
tcp_nodelay on;
#gzip on;
upstream php {
server dedicatedserverip:9000;
}
include /etc/nginx/sites-enabled/*;
}
/etc/nginx/sites-enabled/site.org.conf
server {
listen 81;
server_name site.org www.site.org;
access_log /var/log/nginx/site.org.log;
error_log /var/log/nginx/site.org.log;
root /home/www/site.org;
index index.php;
location ~ .php$ {
fastcgi_pass php;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/www/$fastcgi_script_name;
}
}
为什么会出现此错误?当我仅将 fastcgi_pass 更改为 127.0.0.1:9000 时,一切正常。
答案1
找到您的 php-fpm 配置(默认源安装位置是 /usr/local/etc/php-fpm.conf)并确保设置listen.allowed_clients
为允许您的 Nginx 框的 IP。
如果这不能解决问题,请检查您的 Nginx 错误日志以获取更多详细信息。
答案2
我重新编译了所有 php。如果需要一些教程http://docs.moodle.org/en/Development:Install_Moodle_On_Ubuntu_with_Nginx/PHP-fpm