nginx,瘦客户端和多个主机
问题描述:
我想在运行nginx + thin的服务器上设置多个域。例如,我希望www.domain1.com和www.domain2.com使用不同根路径的不同应用到各自的应用。nginx,瘦客户端和多个主机
如果你对nginx很熟悉,我已经在这篇文章的底部发布了我的nginx.conf文件。
我在想我可以试试拥有多个服务器模块,但是 然后我遇到了一个问题,服务器会默认选择一个随机瘦端口,并且这两个域都去了同一个应用。 *主要原因是在thin_cluster块内部的两个应用程序的所有端口。*
我想我主要关心的是存在与特定服务器无关的thin_cluster。然后有服务器块,它有server_name等。但是,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;
}
}
}
答
,只要你想你不妨马赫“服务器”和“上游”的部分描述。
upstream cluster1 { ...; } upstream cluster2 { ...; } server { listen 80; server_name www.domain1.com; root /home/app1; location/{ try_files $uri/index.html $uri.html $uri @backend; } location @backend { 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; proxy_pass http://cluster1; } } server { listen 80; server_name www.domain2.com; root /home/app2; location/{ try_files $uri/index.html $uri.html $uri @backend; } location @backend { 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; proxy_pass http://cluster2; } }
这里是一个例子。
我用“try_files”代替了“if”块。只需在文档中阅读它。