如何设置 nginx 以使用 rails(unicorn/passenger) 和 php-fpm 为虚拟主机提供服务

如何设置 nginx 以使用 rails(unicorn/passenger) 和 php-fpm 为虚拟主机提供服务

我想在一个实例上为多个站点提供服务。

我安装了 nginx、php-fpm 和 rails 应用。我使用像这样的网站来指导我

我配置 php-fpm 来监听本地套接字

listen = /var/run/php-fpm/php-fpm.sock

我使用多个主机配置 ngnix:

include /etc/nginx/conf.d/*.conf

我有几个站点 php conf 文件,例如/etc/nginx/conf.d/site1.conf

server {
    listen 80; 
    server_name site1.com www.site1.com;

    root /var/www/site1;

    access_log /var/log/nginx/site1.com-access.log;
    error_log /var/log/nginx/site1.com-error.log;

    location / { 
        index index.html index.php;
    }   
    location ~ \.php$ {
        fastcgi_pass        unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index       index.php;
        include             fastcgi_params;
        fastcgi_param       PATH_INFO $fastcgi_script_name;
        fastcgi_param       SCRIPT_FILENAME $document_root/$fastcgi_script_name;
    }       
}

和 rails 站点配置文件类似

upstream rails {
    server 127.0.0.1:3000;
}

server {
    listen 80;
    server_name site2.com www.site2.com;

    access_log /var/log/nginx/site2.com-access.log;
    error_log /var/log/nginx/site2.com-error.log;

    root /var/www/site2;

    location / {
        proxy_pass                       http://rails;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host            $host;
        proxy_set_header X-Url-Scheme    $scheme;
    }
}

我有一个通过以下方式运行的 unicorn rails 服务器rails s -p 3000

然而,没有找到任何网站site1.comsite2.com我可以在以下网址访问 Rails 网站:www.site2.com:3000

哪里出了问题?我花了 2 天时间(将近 30 小时)尝试了许多不同的博客、SO/SF 问题等。请分享您的见解或答案。

编辑1:当我尝试访问这两个网站时,都没有创建任何日志条目。就好像请求从未进入一样。

答案1

始终检查您的防火墙/代理/传入端口。

上述配置文件中的所有内容都运行正常。问题是端口 80 未对入站流量开放。

相关内容