nginx,瘦,和多个主机

我正在尝试在运行nginx + thin的服务器上设置多个域。 例如,我希望www.domain1.com和www.domain2.com使用不同根path的不同应用程序访问各自的应用程序。

如果你对nginx很熟悉,我已经发布了我的nginx.conf文件在这篇文章的底部。

我想我可以尝试有多个服务器块,但后来我遇到了一个问题,服务器将默认select一个随机的瘦端口,并且这两个域都去了同一个应用程序。 *主要原因是在thin_cluster块内的两个应用程序的所有端口。*

我想我主要关心的是有一个thin_cluster与特定的服务器没有关联。 然后是有服务器名称的服务器块等。但是,thin_cluster不能嵌套在服务器块内部。

任何想法如何服务多个主机?

这是我的/etc/nginx/nginx.conf文件

user nginx; worker_processes 5; error_log /var/log/nginx.error.log; pid /var/run/nginx.pid; events { worker_connections 1024; } http { 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 /var/log/nginx.access.log main; sendfile on; keepalive_timeout 65; upstream thin_cluster { server 0.0.0.0:3000; server 0.0.0.0:3001; server 0.0.0.0:3002; server 0.0.0.0:3003; server 0.0.0.0:3004; } server { listen 80; server_name www.domain1.com; root /home/ec2-user/helloCloud/public; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; if (-f $request_filename/index.html) { rewrite (.*) $1/index.html break; } if (-f $request_filename.html) { rewrite (.*) $1.html break; } if (!-f $request_filename) { proxy_pass http://thin_cluster; break; } } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } } 

    你可以根据需要描述为mach“server”和“upstream”部分。

    上游cluster1 {
       ...;
     }
    上游cluster2 {
       ...;
     }
    服务器{
      听80;
       server_name www.domain1.com;
       root / home / app1;
      位置 / {
         try_files $ uri / index.html $ uri.html $ uri @backend;
       }
      位置@backend {
           proxy_set_header X-Real-IP $ remote_addr;
           proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for;
           proxy_set_header主机$ http_host;
           proxy_redirect关闭;
           proxy_pass http:// cluster1;
       }
     }
    服务器{
      听80;
       server_name www.domain2.com;
       root / home / app2;
      位置 / {
         try_files $ uri / index.html $ uri.html $ uri @backend;
       }
      位置@backend {
           proxy_set_header X-Real-IP $ remote_addr;
           proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for;
           proxy_set_header主机$ http_host;
           proxy_redirect关闭;
           proxy_pass http:// cluster2;
       }
     }
    

    这是一个例子。

    我用“try_files”来代替“if”块。 只需在文档中阅读。