Nginx

如何設置 nginx 以使用 rails(unicorn/passenger) 和 php-fpm 服務虛擬主機

  • September 9, 2012

我想在一個實例上服務多個站點。

我安裝了 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 站點 conf 文件,例如

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;
   }
}

我有一個通過執行的獨角獸 Rails 伺服器rails s -p 3000

然而,沒有網站出現site1.comsite2.com。我可以在www.site2.com:3000

怎麼了?我花了 2 天(將近 30 小時)嘗試了許多不同的部落格、SO / SF 問題等。請分享您的見解或答案。

**編輯 1:**當我嘗試訪問任一站點時,不會創建任何日誌條目。就像請求永遠不會進來一樣。

始終檢查您的防火牆/代理/傳入埠。

上述配置文件中的所有內容都執行良好。問題是埠 80 未對入站流量開放。

引用自:https://serverfault.com/questions/424056