我想使用nginx + unicorn托管多个rails应用程序,当前使用apache + passenger with railsbaseuri服务。唯一的原因是在部署每个新应用程序后都需要重新加载apache。我想知道是否可以在unicorn + nginx中添加新应用程序而无需重新加载服务器。
我想在子文件夹(例如主机名/ nginx-app1,主机名/ nginx-app2)上部署应用程序,而主机名指向基本的html页面。
阅读与使用套接字处理单个应用程序有关的内容,并会寻求一些帮助来实现此目的。就我而言,该应用程序仅部署了一次,没有进一步的迭代。一旦我部署了新应用程序,就应该没有停机时间才能使当前应用程序运行。
在应用程序内部编辑config / unicorn.rb文件。
working_directory "/home/ubuntu/application_1"
pid "/home/ubuntu/application_1/pids/unicorn.pid"
stderr_path "/home/ubuntu/application_1/log/unicorn.log"
stdout_path "/home/ubuntu/application_1/log/unicorn.log"
listen "/tmp/unicorn.todo.sock"
worker_processes 2
timeout 30
解决方法之一是将Rails应用程序托管为UDS。nginx具有多个服务器块,可以从每个UDS(Unix域套接字)读取。为语法错误编写逻辑即席赦免。
看看这个。
http://projects.puppetlabs.com/projects/1/wiki/using_unicorn
您可以使用app1.conf来托管app1,以便麒麟有一行。
listen '/var/run/app1.sock', :backlog => 512
并且有多个像这样的nginx上游
upstream app1 {
server unix:/var/run/app1.sock fail_timeout=0;
}
upstream app2 {
server unix:/var/run/app2.sock fail_timeout=0;
}
....
并根据位置或主机标头路由来自服务器块的请求(proxypass)
server {
listen 80;
location /app1 {
proxy_pass http://app1;
proxy_redirect off;
}
location /app2 {
proxy_pass http://app2;
proxy_redirect off;
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句