Nginx/代理无法正常工作

Nginx/代理无法正常工作

我最近卸载了 Nginx 的 apache2,我试图在 88、808 和 888 上监听我的网站,并为每个网站重定向不同的子域(以及将另一个域重定向到另一个服务器)。问题是 Nginx 为所有代理请求提供了错误的网关,并且直接 IP 访问超时。

代理配置: --> otherdomain.fr = 错误 502 网关错误

# HTTP
server {
    # Listen on ipv4
    listen 80;
    #listen [::]:80;

    server_name  ~.*.otherdomain.fr;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass "http://192.168.1.17";
    }
}

server{
    listen 80;
    server_name nextcloud.domain.me;
    location / {
        proxy_set_header Host $host;
        proxy_pass "http://127.0.0.1:888";
        proxy_redirect off;
    }
}

server{
    listen 80;
    server_name domain.me;
    location / {
        proxy_set_header Host $host;
        proxy_pass "http://127.0.0.1:808";
        proxy_redirect off;
    }
}

例如端口 88:--> ip:88 = 超时

(显然,它已启用,并且 nginx 用户可以访问这些文件)

server {
    # Listen on ipv4
    listen 88;
  
    location / {
        root /var/www/html/tests;
    }

}

我显然做错了什么,但我不知道是什么,如果你能帮我一下,那就太好了。提前谢谢你!

编辑 :

netstat -tulpen | grep -E'8.?8'

tcp 0 0 127.0.0.1:10028 0.0.0.0:*
监听 0 28186 1929/master tcp 0 0 0.0.0.0:80 0.0.0.0:* 监听 0 91603 8801/nginx: master tcp 0 0 127.0.0.1:12340
0.0.0.0:* 监听 0 25868 734/dovecot tcp 0 0 127.0.0.1:631 0.0.0.0:*
监听 0 19881 497/cupsd tcp 0 0 0.0.0.0:88 0.0.0.0:* 监听 0 75033 8801/nginx:主 tcp 0 0 0.0.0.0:888
0.0.0.0:* 侦听 0 75032 8801/nginx:主 tcp 0 0 0.0.0.0:443 0.0.0.0:*
侦听 0 75030 8801/nginx:主 tcp 0
0 127.0.0.1:10025 0.0.0.0:* 侦听 0
28182 1929/master udp6 0 0 :::32885
:::* 113 21172
482/avahi-daemon:r“””

答案1

不需要在 的目标网址 周围加上引号proxy_pass

主要问题是server_name ~.*.otherdomain.fr您正在使用proxy_set_header Host $host

在这种情况下,您的正则表达式似乎server_name无效,并且它被视为字符串。然后该字符串出现在$host变量中。

你应该试试

server_name *.otherdomain.fr;

代替。如果不起作用,请使用

proxy_set_header Host $http_host;

它传递 HTTP 主机标头而不是$host变量的内容。

相关内容