傑克達與瑞兒絲的大小事

快速筆記整理網站開發上碰到的各種技巧和問題,免得年紀大忘光,至少還有一個地方可以查找

Tag Archives: nginx

在 nginx 上執行 ruby on rails

最近想要在本地端設定一組 local 的 domain name 來測試一些劇情,所以需要 nginx 的配合,但又不想透過 unicorn 做為 web server ,因為不方便開發時 debug, 之前一直在思考如何在 nginx 上執行 ROR,以往的教學範例都是直接透過 rails -s 直接執行 web server,後來查到一篇文章教學,原來這麼簡單,趕快筆記一下

實作方式:

建立一組 nginx vhost 設定,內容如下:

upstream myapp {
server localhost:3000;
}
server {
listen 80;
server_name myapp.example.local;

access_log /var/www/myapp.example.local/log/access.log;
error_log /var/www/myapp.example.local/log/error.log;
root /var/www/myapp.example.local;
index index.html;

location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
try_files /system/maintenance.html $uri $uri/index.html $uri.html @ruby;
}

location @ruby {
proxy_pass http://myapp;
}
}

只要設定 uptream  指向到本地端的 rails server 就好了,最後在瀏覽器上輸入剛剛自訂好的 domain name (myapp.example.local) ,應該就能正確看到畫面結果,這樣開發時也比較容易 debug 了

p.s:

  1. 完成新增 vhost 設定後,記得要重啟 nginx
  2. 別忘了在本地端的 /etc/hosts 下新增一組 domain name 設定

參考文章:

http://kevin.vanzonneveld.net/techblog/article/ruby_with_nginx_on_ubuntu_lucid/