Nginx反向代理配置多域虚拟主机

时间:2017-04-27 20:36:25

标签: nginx proxy reverse-proxy virtualhost

我在配置我的nginx代理时遇到了麻烦,尽管我已经阅读了很多指南并尝试连续三个晚上。

这是我的拓扑: enter image description here

(来自互联网)来自端口80的所有流量都被重定向到192.168.1.4,一个运行nginx的ubuntu-server虚拟机。

我有一个NAS,它有一个连接到管理页面的子域myName.surname.com。在那个NAS上,我有一个apache webserver运行在81,82端口上运行几个站点,

NAS使用虚拟主机,因此域成功重定向(不使用nginx)。

我还在另一个192.168.1.3:9810上的IIS上运行了一个ASP.NET网站。

现在这是我的NGINX配置。我尝试配置几次但是打破了它,所以我把它恢复到默认状态:

server {        
    listen 80 default_server;
    root /usr/share/nginx/html;
    index index.html index.htm;      
    server_name localhost;
    location / {            
        proxy_pass http://192.168.1.1; #WORKS OK
    }
}

如果我继续myName.surname.comwordpressWebsite.co.ukmyIISSiteDomain.co.uk我在上面的配置中遇到了正确的页面,请访问192.168.1.1:8080或192.168。 1.1:81。

这是一个开始。

第一个问题是当我导航到任何其他页面(不是主页),如wordpressWebsite.co.uk/blog时,它打破了404.所以我试图区分URL?我读到配置应该是这样的:

server {        
    listen 80;
    server_name wordpressWebsite.co.uk;
    location / {            
        proxy_pass http://192.168.1.1:81;
    }
}
server {        
    listen 80;
    server_name myName.surname.com;
    location / {            
        proxy_pass http://192.168.1.1;
    }
}
server {        
    listen 80 myIISSiteDomain.co.uk
    location / {            
        proxy_pass http://192.168.1.3:9810;
    }
}

但这不太对。

1)wordpressWebsite.co.uk加载页面,但是一旦我转到任何其他链接,如wordpressWebsite.co.uk/blog它就会中断,给我的NAS错误消息,如它试图访问192.168.1.1 /博客而不是虚拟主机〜/博客。它实际上将导航栏中的URL更改为192.168.1.1,为什么它会像这样?

2)如果我使用的是虚拟主机,我认为我不需要通过nginx为192.168.1.1:81(wordpressWebsite.co.uk)传入端口。当然我只需要将它指向192.168.1.1,然后virtualhost应该检测到url映射到81?我不知道该怎么做,因为我不完全理解从nginx传递到服务器的实际内容是什么?

1 个答案:

答案 0 :(得分:0)

您可以添加try_files $uri $uri/ /index.php?$args;https://www.geekytuts.net/linux/ultimate-nginx-configuration-for-wordpress/