Nginx反向代理配置多域虚拟主机
Nginx reverse proxy configuration multi domains virtualhost
尽管阅读了许多指南并连续三个晚上尝试,但我在配置我的 nginx 代理时遇到了问题。
这是我的拓扑:
(来自互联网)来自端口 80 的所有流量都被重定向到 192.168.1.4
,一个 ubuntu-服务器虚拟 运行 nginx。
我有一个 NAS,它有一个连接到管理页面的子域 myName.surname.com
。在那个 NAS 上,我有 apache 网络服务器 运行 在端口 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.com
或 wordpressWebsite.co.uk
或 myIISSiteDomain.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 加载了页面,但是一旦我转到任何其他 link,例如 wordpressWebsite.co.uk/blog,它就会中断,给我我的 NAS 错误消息就像它试图访问 192.168.1.1/blog 而不是虚拟主机 ~/blog。它实际上将导航栏中的 URL 更改为 192.168.1.1 那么为什么它会这样呢?
2) 如果我使用的是虚拟主机,我认为我不需要通过 nginx 为 192.168.1.1:81 (wordpressWebsite.co.uk) 传入端口。当然我只需要将它指向 192.168.1.1,然后 virtualhost 应该检测到 url 映射到 81?我不确定如何执行此操作,因为我不完全了解从 nginx 实际传递到服务器的内容是什么?
您可以添加 try_files $uri $uri/ /index.php?$args;
看到这个 https://www.geekytuts.net/linux/ultimate-nginx-configuration-for-wordpress/
尽管阅读了许多指南并连续三个晚上尝试,但我在配置我的 nginx 代理时遇到了问题。
这是我的拓扑:
(来自互联网)来自端口 80 的所有流量都被重定向到 192.168.1.4
,一个 ubuntu-服务器虚拟 运行 nginx。
我有一个 NAS,它有一个连接到管理页面的子域 myName.surname.com
。在那个 NAS 上,我有 apache 网络服务器 运行 在端口 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.com
或 wordpressWebsite.co.uk
或 myIISSiteDomain.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 加载了页面,但是一旦我转到任何其他 link,例如 wordpressWebsite.co.uk/blog,它就会中断,给我我的 NAS 错误消息就像它试图访问 192.168.1.1/blog 而不是虚拟主机 ~/blog。它实际上将导航栏中的 URL 更改为 192.168.1.1 那么为什么它会这样呢?
2) 如果我使用的是虚拟主机,我认为我不需要通过 nginx 为 192.168.1.1:81 (wordpressWebsite.co.uk) 传入端口。当然我只需要将它指向 192.168.1.1,然后 virtualhost 应该检测到 url 映射到 81?我不确定如何执行此操作,因为我不完全了解从 nginx 实际传递到服务器的内容是什么?
您可以添加 try_files $uri $uri/ /index.php?$args;
看到这个 https://www.geekytuts.net/linux/ultimate-nginx-configuration-for-wordpress/