如何在Nginx中限制指定文件在指定端口上运行?

如何在Nginx中限制指定文件在指定端口上运行?

Web 服务器是 NginX,我需要执行以下这些操作:

  1. 从80端口访问xxx.php时,返回404;
  2. 当从 8555(ssl 连接)访问 xxx.php 时,正常方式。

我尝试过这个方法:

server
{

    listen 80;
    location xxx.php {
        return 404;
    }

    location / {
        .....
    }
}


server
{
    listen 8555 default ssl;
    location / {
        ....
    }
}

wherelocation /{指令完全相同。但似乎不起作用。

感谢您的帮助。

答案1

使用location /path/to/xxx.php而不是location xxx.php

答案2

我想我错过了一个重要的点,该服务器是一个代理服务器,并且上游服务器有很多重写规则,所以这里应该匹配的是不是文件本身,还有 url。

所以解决方案是这样的:

在上游服务器中找到重写规则,找到要匹配的关键字,添加

location ^~ /keyword {
    return 404;
}

相关内容