麻烦哪位有 nginx+unicorn 完整配置,主要的是,nginx.conf 和 .rb 这两个配置文件。 谢谢!
给你看看 ruby-china 的配置 Nginx 配置
http {
.... 省略其他的
upstream ruby_china_backend {
server unix:/tmp/unicorn.ruby-china.sock fail_timeout=0;
}
server {
listen 80;
server_name ruby-china.org;
root /home/ruby/www/ruby-china/current/public;
location ~* ^(/assets|/favicon.ico) {
access_log off;
expires max;
}
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering on;
proxy_pass http://ruby_china_backend;
}
}
}
unicorn.rb 可以在代码库里面看到: https://github.com/huacnlee/ruby-china/blob/master/config/unicorn.rb
呵呵,谢谢,原来是配了这个 upstream,但 没配置 proxy_pass,现在问题解决了
upstream ruby_china_backend {
server unix:/tmp/unicorn.ruby-china.sock fail_timeout=0;
}
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering on;
**proxy_pass http://ruby_china_backend;**
}
提供自己基于 RVM 的完整配置:
创建带环境的 unicorn 运行命令:
rvm wrapper ruby-1.9.3-p194 bootup unicorn
创建config/unicorn.rb
:
https://gist.github.com/3547765#file_unicorn.rb
创建启动文件:
https://gist.github.com/3547765#file_one.sh
创建nginx
配置文件:
https://gist.github.com/3547765#file_nginx.conf
启动:
sudo ln -s ~/nginx.conf /etc/nginx/conf.d/unicorn.conf # 关联配置
chmod +x ./one.sh # 执行权限
./one.sh # 启动unicorn
sudo service nginx start
按这个配置,如果 public 目录下,有一些静态文件,如 xx.html 的话,是访问不了的,是什么原因的呢?
但是又不能另外配置一个 location 来处理 html 文件,因为有一些 applicaion 处理的 url 也是 .html 结尾的(为了兼容以前的代码)。