nginx子域

好吧,我似乎无法得到它,我检查了nginx论坛,也没有太多的帮助。 我认为这将是简单的。 我想定义的子域名转到不同的url/端口。 即

DNS site.com goes to 192.168.1.1 w/ masking DNS www.site.com goes 192.168.1.1 w/ masking DNS red.site.com goes 192.168.1.1 w/ masking DNS blue.site.com goes to 192.168.1.1 w/ masking 

我希望site.com和www.site.com正常运行,但我想red.site.com去192.168.1.2:5000和blue.site.com去192.168.1.2:6000/temp/

等等等等……我甚至不确定我在意地址栏中显示的是什么,我想如果它保持在red.site.com,它会很好,但这并不重要。 我试过一个代理传递一个URL重写,显然我做错了什么。 这甚至有可能吗?

你有没有试过Proxy Pass指令?

有类似的东西

 server { server_name red.site.com; location / { proxy_pass http://192.168.1.2:5000; } } server { server_name blue.site.com; location / { proxy_pass 192.168.1.2:6000/temp/; } } 

应该管用。 看文件的东西,如标题转发等…

根据需要创建尽可能多的虚拟服务器。 检入/etc/nginx/sites-available并将default服务器复制到red …(或者你的配置在这里)。 然后去/etc/nginx/sites-enabled并做一个符号链接

 ln -s ../sites-available/red 

并为其他服务器( 蓝色 …),然后重新启动nginxkillall -HUP nginx重新加载配置。

基本上在一个虚拟服务器,你给任何配置是特定于该服务器。

例如, red

 server { listen 5000; server_name red.site.com; root /var/www/docs/red; ... } 

或为blue (注意temp添加到根目录

 server { listen 6000; server_name blue.site.com; root /var/www/docs/somewhere/temp; ... } 

如果您还需要指定IP,请执行

  listen 192.168.1.2:5000; 

red ,或6000 blue

一些解释指令的文献。

你应该创建该文件,如果它不存在:

/etc/nginx/conf.d/servers.conf

并用代理设置填充它。 例如:

 server { listen 80; server_name red.site.com; location / { proxy_pass http://localhost:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 150; proxy_send_timeout 100; proxy_read_timeout 100; proxy_buffers 4 32k; client_max_body_size 8m; client_body_buffer_size 128k; } }