Nginx 反向代理-不存在的子目录和子域名重定向?

Nginx 反向代理-不存在的子目录和子域名重定向?

我有以下 nginx 配置:

upstream toshiba15 {
    server toshiba15.local:80;
}

server {
    listen 443 ssl;
    server_name my.domain.com;
    ssl_certificate /etc/nginx/ssl/startssl-nginx.crt;
    ssl_certificate_key /etc/nginx/ssl/startssl-nginx.key;
    root /usr/share/nginx/html/;

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

大部分都按预期工作,但有一个问题 - 当我在 uri 中指定不存在的子目录时,它会显示代理(toshiba15)服务器根目录中的内容!

代理服务器具有库存 nginx 配置 - 没有变化。

编辑:我通过添加另一台返回 404 的服务器并使用正则表达式来解决子域名问题

此外,如果我指定未定义的子域,它会重定向到代理服务器的根目录(my.domain.com)

谢谢!

答案1

好的,我知道该怎么做了。在上游服务器上,我将 root 和 index 指令移到了 location 块内,并删除了 tries。

在代理上,为了解决子域名问题,我在顶部设置了一个没有服务器名称的 catch-all,并返回了 404。我在主域名中添加了一个正则表达式。

相关内容