使用nginx的phusion乘客3.0.17运行多个rails网站

我搜索谷歌部署多个铁路网站使用Phusion乘客3.0.17与Nginx,但我没有得到相关的结果。 任何我如何通过运行passenger-install-nginx-module命令完成乘客nginx设置。

问题1)我正在寻找正确的初学者教程,使用nginx使用phusion passenger 3.0.17运行多个rails网站

问题2)我正在查看命令启动,停止,重新启动(整个乘客nginx服务器(即)为所有网站),也为(个人铁路网站)

注意:我不是在寻找乘客独立解决方案。 我正在使用REE 1.8.7和rails 2.3.14


根据Passenger的文档,您可以为每个要部署的应用程序创建一个新的虚拟主机。 并将网站root指向您的应用程序公共目录,然后添加passenger_enabled指令。 与使用Apache部署完全相同。

http {
    ...

    server {
        listen 80;
        server_name www.mycook.com;
        root /webapps/mycook/public;
        passenger_enabled on;
    }

    ...
}

更多信息:http://www.modrails.com/documentation/Users%20guide%20Nginx.html#deploying_a_ror_app

关于问题2.重新启动取决于你正在尝试做什么。 我假设你正在使用一个使用init.d的发行版

这些是3种情况,你做了一种不同的'重新启动'。

你在Nginx上有一些配置问题。 或者它表现得很奇怪。 所以你可以像这样重新启动Nginx服务: /etc/init.d/nginx restart

接下来的案例是,你有一个在Nginx上部署乘客模块的rails或sinatra应用程序。 你想让它重新加载一些你刚刚推送到服务器的变化。 Passenger在应用程序中tmp/restart.txt文件。 所以只需简单地运行touch tmp/restart.txt restart.txt即可。 虽然cd进入应用程序的文件夹将告诉Passenger重新加载应用程序。

最后一次重新启动/重新加载的情况是为Nginx重新加载的。 您在添加或更改VHOST时使用此功能。 /etc/init.d/nginx reload 。 这使您可以重新加载虚拟主机和其他配置,而不会丢失连接。

在Passenger文档中有一个很大的问题,这是非常彻底的。 nginx-passenger文档


以下是关于为多个虚拟主机配置Nginx的分步教程:http://articles.slicehost.com/2007/12/7/ubuntu-gutsy-installing-nginx-via-aptitude

注意:

  • 正如stuartc提到的那样,如果您在Nginx conf中更改某些配置,则无法重新启动单个网站/虚拟主机。 您必须重新启动Nginx才能使更改生效。 但是,如果要直接应用生产修复程序,则可以在推送文件后在服务器应用程序目录中执行$ touch current/tmp/restart.txt
  • 我在Ubuntu上遇到Nginx重启的问题; 明确的停止和开始似乎给予更确定的结果。 使用<NGINX_HOME>/bin/nginx stop停止,然后启动<NGINX_HOME/bin/nginx
  • 为了帮助你,这里是我的配置文件。

    nginx.conf:

    #user  nobody;
    worker_processes  4;
    
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
    
    #pid        logs/nginx.pid;
    
    events {
        worker_connections  1024;
    }
    
    http {
        passenger_root /rails/common/ruby-1.9.2-p290/lib/ruby/gems/1.9.1/gems/passenger-3.0.17;
        passenger_ruby /rails/common/ruby-1.9.2-p290/bin/ruby_with_env;
    
        passenger_max_pool_size 30;
        include       mime.types;
        default_type  application/octet-stream;
    
        #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
        #                  '$status $body_bytes_sent "$http_referer" '
        #                  '"$http_user_agent" "$http_x_forwarded_for"';
    
        #access_log  logs/access.log  main;
    
        sendfile        on;
        #tcp_nopush     on;
    
        #keepalive_timeout  0;
        keepalive_timeout  65;
    
        gzip  on;
    
        include /rails/common/nginx/conf/sites-enabled/*.conf;
    }
    

    站点启用文件夹中的示例site.conf:

    server {
        listen       80;
        server_name  domainname1.com;
        root /rails/myapp1/current/public;
        passenger_enabled on;
    
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    
        if (-f $document_root/system/maintenance.html) {
            return 503;
        }
        error_page 503 @maintenance;
        location @maintenance {
            rewrite ^(.*)$ /system/maintenance.html break;
        }
    }
    

    启用网站的新文件就是添加新网站所需的全部文件。

    链接地址: http://www.djcxy.com/p/32451.html

    上一篇: running multiple rails websites using phusion passenger 3.0.17 with nginx

    下一篇: Phusion Passenger v. WEBrick