问题一、nginx根据访问状态(404、500…)跳转到指定页面
- 【情况一】直接在server下配置 error_page
server {
listen 80;
server_name www.xxxxxxx.com;
error_page 404 /404.html; // error_page [状态值] [指定路径] 指定路径也可直接写网络路径
location = /404.html {
root C:/Users/15964/Desktop; // 放错误页面的目录路径。
}
}
- 【情况二】tomcat未启动时
当我把我的tomcat服务器关掉时,我服务器就没有运行项目了,这时在访问页面,则上述配置没有产生效果,此时则需要添加一个配置
fastcgi_intercept_errors on;
在http下配置 fastcgi_intercept_errors on;然后加入【情况一】代码
fastcgi_intercept_errors on
- 【情况三】如果是反向代理,后台Tomcat 处理报错抛出404,想把这个状态让Nginx反馈给客户端或者重定向到某个连接
在http下配置 proxy_intercept_errors on; 然后加入【情况一】代码
proxy_intercept_errors on;
proxy_intercept_errors on;这个配置不一定需要放在http下面,也可以是server下,也可以是server的location下
proxy_intercept_errors和fastcgi_intercept_errors的理解
配置proxy_intercept_errors on; 时配置的错误页面表示的是当服务器返回的状态码为我们配置的状态码时,我们才进行的页面跳转。如:服务器中没有xxxx.do接口时,我们访问了这个接口,配置了
proxy_intercept_errors on;则也会进行页面跳转
如果服务器中没有开启服务,则配置proxy_intercept_errors on; 无用,则需要再添加fastcgi_intercept_errors on; 配置, 这样的话,出现页面错误时也会进行跳转
问题二、限指定ip访问
allow 允许
deny 禁止
- 限制nginx代理的所有项目
在Nginx的配置文件夹里创建一个名为“license.conf”的配置文件,专门用来做IP限制
在配置文件中加入如下一行,如果禁用多个,可以加多行,格式为deny ***
allow 192.168.10.1/24;
deny all;
- 限制nginx部分服务
在配置文件的server下加入:
server {
listen 9133;
server_name localhost;
# 指定ip段访问
allow 192.168.5.29;
allow 192.168.10.1/24; # 10网段下所有地址都可访问
allow 127.0.0.1;
deny all;
}