nginx对指定URL或状态码设置过期时间
时间: 2024-01-09 07:05:19 浏览: 29
可以通过nginx的expires指令来对指定的URL或状态码设置过期时间。expires指令可以在http、server和location块中使用。例如:
```
http {
# 设置所有静态文件的过期时间为1小时
location ~* \.(gif|jpg|jpeg|png|css|js|ico)$ {
expires 1h;
}
# 设置404错误页面的过期时间为5分钟
error_page 404 /404.html;
location = /404.html {
expires 5m;
}
}
```
在上面的例子中,通过正则表达式匹配所有静态文件的URL,并设置其过期时间为1小时。同时,设置404错误页面的URL为/404.html,并设置其过期时间为5分钟。注意,expires指令的参数可以是时间段,例如1h表示1小时,5m表示5分钟,7d表示7天等等。
相关问题
nginx设置指定URL只可内网访问
在 nginx 的配置文件中,可以使用 `allow` 和 `deny` 指令来控制访问权限。可以通过以下步骤来设置指定 URL 只能内网访问:
1. 找到需要限制访问的 URL 所在的 server 或 location 块。
2. 在该块中增加 `allow` 指令,限制只有指定的 IP 地址可以访问该 URL。例如:
```
location /internal/ {
# 允许 192.168.0.0/16 的内网 IP 地址访问
allow 192.168.0.0/16;
# 拒绝所有其他 IP 地址访问
deny all;
...
}
```
这样,只有来自 192.168.0.0/16 网段的内网 IP 地址才可以访问 `/internal/` 路径下的 URL,其他 IP 地址将被拒绝访问。
3. 重新加载 nginx 配置,使配置生效。可以使用以下命令实现:
```
nginx -s reload
```
注意,在设置 `allow` 指令时,应该谨慎考虑。如果不小心将所有 IP 地址都拒绝访问,那么整个网站将无法访问。因此,最好在测试环境中先验证配置是否正确,再应用到生产环境中。
nginx设置指定URL只可固定IP访问
可以使用nginx的`allow`和`deny`模块限制特定IP地址访问指定URL。
具体步骤如下:
1. 在`/etc/nginx/nginx.conf`文件中,创建一个`http`块:
```
http {
...
}
```
2. 在`http`块中添加一个`geo`块,用于定义可以访问指定URL的IP地址段。例如,下面的代码定义了IP地址段`10.0.0.0/8`和`192.168.0.0/16`可以访问`/secret`路径:
```
geo $restricted_ips {
default no;
10.0.0.0/8 yes;
192.168.0.0/16 yes;
}
```
3. 在`http`块中添加一个`server`块,用于匹配要限制访问的URL。例如,下面的代码限制了只有`$restricted_ips`中定义的IP地址段可以访问`/secret`路径:
```
server {
listen 80;
server_name example.com;
location = /secret {
deny all;
allow $restricted_ips;
}
}
```
现在,当`/secret`路径被访问时,只有`$restricted_ips`中定义的IP地址段可以成功访问,其他IP地址将被拒绝访问。