我有3台服务器:1个nginx和2个apache webservers
所有流量都需要通过nginx到达apache服务器
nginx (192.168.1.100)
web1 (192.168.1.101)
web2 (192.168.1.201)
我很难通过"开发"子域到正确的服务器,用于其域尚未指向我的nginx服务器的客户端。
我有一个业务的根域" mydomain.com"这样" web1.mydomain.com"应该直接指向" web1"和" web2.mydomain.com"应该指向" web2"
此外,如果我将另一个子域添加到web1.mydomain.com或web2.mydomain.com的前面,它应该将请求转发到正确的服务器。
示例:test.net.web1.mydomain.com应转发到web1,并由web1上的vhost为test.net提供服务。
我尝试了几个server_name配置,但无法让子域正确路由。
upstream web1 {
server 192.168.1.101:80;
}
server_name web1.mydomain.com;
proxy_pass http://web1;
server_name *.web1.mydomain.com;
proxy_pass http://$1.web1;
server_name (.*?).web1.mydomain.com;
proxy_pass http://$1.web1;
server_name (.*?).web1.mydomain.com;
proxy_pass http://web1;
server_name .web1.mydomain.com;
proxy_pass http://web1;
" web1.mydomain.com"或" test.net.web1.mydomain.com"将转发到apache服务器。我要么得到一个"这个网站无法到达"或nginx的默认测试页。
我也使用过mxtools,域名web1.mydomain.com和web2.mydomain.com都指向nginx服务器的ip地址。
web1的当前.conf文件:
upstream web1 {
server 192.168.1.101:80;
}
server {
listen 80;
server_name .web1.mydomain.com;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto http;
proxy_http_version 1.1;
proxy_redirect off;
proxy_pass http://web1;
}
}