小编nic*_*oco的帖子

除非请求特定域名,否则如何让nginx返回404?

我有一个 nginx 服务器,我想在anything.mydomain.com请求时返回 404,除非anythingwwwmypythonapp1或者mypythonapp2

我在以下位置创建了一个00-noredirect文件/etc/nginx/sites-enabled

server {
    listen 80;
    listen 443 ssl;

    server_name _;

    return 404;
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,一切都被重定向到mypythonapp1.

其他服务器块如下:

server {
    listen mypythonapp1.mydomain.com:80;
    server_name mypythonapp1.mydomain.com;
    (...) 
    listen mypythonapp1.mydomain.com:443 ssl; # managed by Certbot
    (...)
}
Run Code Online (Sandbox Code Playgroud)

我认为这可能与certbotmy 中的添加有关/etc/nginx/sites-enabled/mypythonapp1,即使我不确定:

(...)
    if ($scheme != "https") {
        return 301 https://$host$request_uri;
    } # managed by Certbot
(...)
Run Code Online (Sandbox Code Playgroud)

有什么我必须添加00-noredirect才能避免这种不需​​要的行为吗?

编辑:根据@Tim 的要求,这是我几乎完整的 nginx 配置:

server { …
Run Code Online (Sandbox Code Playgroud)

nginx redirect

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

nginx ×1

redirect ×1