新手问题 nginx 相关问题,如何让一个域名下运行多个网站 (rails + nginx)

18810625123 · 2017年06月28日 · 最后由 18810625123 回复于 2017年06月30日 · 3042 次阅读

目前情况如下:

  • 一台阿里云服务器 (ubuntu14.04)
  • 一个已备案的一级域名 zyythsx.com(已做好域名解析如下)
  • 可运行的 rails 项目 3 个,在服务器上的路径如下
/root/ruby/a
/root/ruby/b
/root/ruby/c
  • 已装 nginx(1.10.0 ubuntu),/etc/nginx/nginx.conf配置如下
user www-data;
worker_processes auto;
pid /run/nginx.pid;

events {
        worker_connections 768;
        # multi_accept on;
}

http {
        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_timeout 65;
        types_hash_max_size 2048;

        include /etc/nginx/mime.types;
        default_type application/octet-stream;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
        ssl_prefer_server_ciphers on;

        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;

        gzip on;
        gzip_disable "msie6";

        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;

        server {
            listen 3001;
            server_name a.zyythsx.com;
        }

        server {
            listen 3002;
            server_name b.zyythsx.com;
        }

        server {
            listen 3003;
            server_name c.zyythsx.com;
        }
}

现在的问题是,我要想每个二级域名访问一个项目,比如:

  • a.zyythsx.com 进入 a 项目
  • b.zyythsx.com 进入 b 项目
  • c.zyythsx.com 进入 c 项目

请问接下来要如何做? nginx 要怎么配置?配置好 nginx 后,要怎么启动这些 rails 项目

1 楼 已删除

根据域名 http_proxy 到不同 upstream

server {
  listen 3001;
  server_name a.zyythsx.com;
  root   /root/ruby/a/public;
}

server {
  listen 3002;
  server_name b.zyythsx.com;
  root   /root/ruby/b/public;
}

puma 分别为 3 个 rails app 起三个不同的端口,例如 a - 3000, b - 3001, c - 3002 nginx 针对三个子域名分别配置转发就完了。 a.xxx.xxx -> upstream: 3000, b.xxx.xxx -> upstream: 3001, c.xxx.xxx -> upstream: 3002

可以了,谢谢大家

需要 登录 后方可回复, 如果你还没有账号请 注册新账号