使用nginx将子域传递给不同的apache服务器

时间:2017-06-12 18:48:10

标签: apache nginx subdomain

我有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;
    }
}

0 个答案:

没有答案