我在配置我的nginx代理时遇到了麻烦,尽管我已经阅读了很多指南并尝试连续三个晚上。
(来自互联网)来自端口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.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加载页面,但是一旦我转到任何其他链接,如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传递到服务器的实际内容是什么?
答案 0 :(得分:0)
您可以添加try_files $uri $uri/ /index.php?$args;
见https://www.geekytuts.net/linux/ultimate-nginx-configuration-for-wordpress/