繁体   English   中英

使用nusionx使用phusion passenger 3.0.17运行多个rails网站

[英]running multiple rails websites using phusion passenger 3.0.17 with nginx

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

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

问题2)我正在寻找启动,停止,重启(所有网站的整个乘客nginx服务器(即))以及(个人铁路网站)的命令

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

根据Passenger的文档,您可以为要部署的每个应用程序创建一个新的vhost。 并将站点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 这允许您在不丢弃连接的情况下重新加载vhost和其他配置。

对乘客文档有一个了解,它是非常彻底的。 nginx-passenger docs

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

注意:

  1. 如果您在Nginx conf中更改某些配置,则无法重新启动单个网站/虚拟主机,如stuartc所述。 您必须重新启动Nginx才能使更改生效。 但是,如果要直接应用生产修订,则可以在推送文件后在服务器应用程序目录中执行$ touch current/tmp/restart.txt
  2. 我在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;
    }
}

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM