帮我写个nginx判断$host不为1.1.1.1和1.1.2.2就返回404
时间: 2023-08-04 18:07:04 浏览: 40
可以使用if语句来判断$host的值,然后返回404状态码。以下是示例配置:
```
server {
listen 80;
server_name example.com;
if ($host != '1.1.1.1' && $host != '1.1.2.2') {
return 404;
}
# 其他配置
...
}
```
在这个配置中,如果$host的值不是1.1.1.1或1.1.2.2,就会返回404状态码。请注意,if语句可能会导致性能问题,因此请谨慎使用。
相关问题
帮我写个nginx判断$host不为1.1.1.1或者1.1.2.2就返回404
可以使用nginx的if语句来实现,如下所示:
```
server {
listen 80;
server_name example.com;
if ($host != "1.1.1.1" && $host != "1.1.2.2") {
return 404;
}
# 其他配置
}
```
这段代码的意思是,如果请求的host不是1.1.1.1或1.1.2.2,则返回404状态码。注意,使用if语句会对性能产生一定的影响,因此建议尽量避免过多的if语句。
nginx 设置屏蔽所有IP访问 允许1.1.1.1访问
可以使用以下Nginx配置来实现屏蔽所有IP访问,只允许1.1.1.1访问:
```
# 屏蔽所有IP访问
server {
listen 80 default_server;
server_name _;
return 403;
}
# 允许1.1.1.1访问
server {
listen 80;
server_name example.com;
allow 1.1.1.1;
deny all;
# ... 其他配置
}
```
在第一个server块中,我们设置了listen 80 default_server,这表示所有没有匹配到其他server块的请求都会被这个server块处理。在这个server块中,我们设置了server_name _,表示所有域名都会被匹配。然后,我们使用return 403来返回一个403 Forbidden响应,从而屏蔽所有IP访问。
在第二个server块中,我们设置了允许1.1.1.1访问,拒绝所有其他IP访问。这可以通过allow和deny指令来实现。注意,这个server块中必须要有一个具体的server_name,否则Nginx会抛出一个警告。