我有2台服务器: -
服务器1:NGINX反向代理。
服务器2:具有5-6个网站(不同域名)的NGINX
所以基本上,所有用户都会来到服务器1,它将代理传递到服务器2的流量并获得响应。服务器1还将执行缓存,WAF等。
以下是我对服务器1的配置: -
server {
listen 80;
server_name example.com www.example.com;
location ~* {
proxy_pass http://mysite:80;
}
}
server {
listen 80;
server_name server.com www.server.com;
location ~* {
proxy_pass http://mysite:80;
}
}
在我的服务器2中,在NGINX的virtual.conf中,我有以下配置:
index index.php index.html;
server {
listen 80;
server_name example.com www.example.com;
location / {
root /var/www/websites/example/;
include location-php;
}
}
server {
listen 80;
server_name server.com www.server.com;
location / {
root /var/www/websites/server/;
include location-php;
}
}
但是,无论何时我转到http://example.com或http://server.com(通过Sever 1作为反向代理执行),它都会显示服务器2的默认NGINX页面。我不确定我做错了什么。这种类型的设置也是一种正确的做事方式吗?
答案 0 :(得分:0)
这是您的主机问题
由于您的上游名称是 mysite ,因此上游请求中的主机名也是 mysqsite 。
因此主机不与后端服务器匹配。
您可以通过在 proxy_pass 之前添加指令来解决此问题:
proxy_set_header Host server.com