一个网站项目,肯定是防止不了404页面的,平常拔取Nginx作为Web服务器时,有以下集中布置形式,一起来探视。

转自

转自

在此记录下Nginx服务器nginx.conf的布局文件表达,
部分注释收集与网络.

首先种:Nginx自己的错误页面

Nginx落成404页面的三种格局,你知道二种 – 运维派

Nginx完结404页面的两种艺术,你领会两种 – 运维派

style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>#运功效户
user
www-data;    
style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>#启动进程,常常设置成和cpu的数额相当于
style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>worker_processes 
1;

style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>#大局错误日志及PID文件
style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>error_log 
/var/log/nginx/error.log;
style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>pid       
/var/run/nginx.pid;

style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>#行事格局及连接数上限
events
{
   
use   epoll;             #epoll是多路复用IO(I/O
Multiplexing)中的一种方法,不过仅用于linux2.6以上基础,可以大大提升nginx的特性
   
worker_connections  1024;#单个后台worker
process进度的最大并发链接数
    #
multi_accept on; 
style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>}

style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>#设定http服务器,利用它的反向代理作用提供负载均衡扶助
http
{
    
#设定mime类型,类型由mime.type文件定义
   
include       /etc/nginx/mime.types;
   
default_type  application/octet-stream;
   
#设定日志格式
   
access_log    /var/log/nginx/access.log;

   
#sendfile 指令指定 nginx 是不是调用 sendfile 函数(zero copy
格局)来输出文件,对于常见应用,
   
#不可能不设为 on,即使用来举办下载等使用磁盘IO重负载应用,可设置为
off,以平衡磁盘与网络I/O处理速度,下跌系统的uptime.
   
sendfile        on;
   
#tcp_nopush     on;

   
#连天超时时间
   
#keepalive_timeout  0;
   
keepalive_timeout  65;
   
tcp_nodelay        on;
style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>    
   
#开启gzip压缩
   
gzip  on;
   
gzip_disable “MSIE [1-6]\.(?!.*SV1)”;

   
#设定请求缓冲
   
client_header_buffer_size    1k;
   
large_client_header_buffers  4 4k;

   
include /etc/nginx/conf.d/*.conf;
   
include /etc/nginx/sites-enabled/*;

   
#设定负载均衡的服务器列表
    
upstream mysvr {
   
#weigth参数表示权值,权值越高被分配到的几率越大
   
#本机上的Squid开启3128端口
   
server 192.168.8.1:3128 weight=5;
   
server 192.168.8.2:80  weight=1;
   
server 192.168.8.3:80  weight=6;
   
}

  
server {
   
#侦听80端口
       
listen       80;
       
#概念使用www.xx.com访问
       
server_name  www.xx.com;

       
#设定本虚拟主机的走访日志
       
access_log  logs/www.xx.com.access.log  main;

   
#默许请求
   
location / {
style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>         
root   /root;      #概念服务器的默许网站根目录地方
style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>         
index index.php index.html index.htm;  
#概念首页索引文件的称谓

style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>         
fastcgi_pass  www.xx.com;
style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>        
fastcgi_param  SCRIPT_FILENAME 
$document_root/$fastcgi_script_name; 
style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>         
include /etc/nginx/fastcgi_params;
       
}

Nginx达成404页面的二种方式,Nginx配置文件详细表明。    #
定义错误指示页面
   
error_page   500 502 503 504 /50x.html;  
       
location = /50x.html {
       
root   /root;
   
}

   
#静态文件,nginx自己处理
   
location ~ ^/(images|javascript|js|css|flash|media|static)/ {
       
root /var/www/virtual/htdocs;
       
#逾期30天,静态文件不怎么更新,过期可以设大一点,如若频仍更新,则足以设置得小一些。
       
expires 30d;
   
}
   
#PHP 脚本请求全体转账到 法斯特CGI处理. 使用FastCGI默许配置.
   
location ~ \.php$ {
       
root /root;
       
fastcgi_pass 127.0.0.1:9000;
       
fastcgi_index index.php;
       
fastcgi_param SCRIPT_FILENAME
/home/www/www$fastcgi_script_name;
       
include fastcgi_params;
   
}
   
#设定查看Nginx状态的地方
   
location /NginxStatus {
       
stub_status            on;
       
access_log              on;
       
auth_basic              “NginxStatus”;
       
auth_basic_user_file  conf/htpasswd;
   
}
   
#不准访问 .htxxx 文件
   
location ~ /\.ht {
       
deny all;
   
}
style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>     
    
}
style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>}

Nginx访问一个静态的html
页面,当以此页面没有的时候,Nginx抛出404,那么哪些回到给客户端404啊?

 

 

以上是一对主导的配备,使用Nginx最大的利益就是负载均衡

看下面的布署,那种气象下不必要修改任何参数,就能促成那个效用。

率先种:Nginx自己的不当页面

先是种:Nginx自己的谬误页面

若是要动用负载均衡的话,可以修改配置http节点如下:

style=”font-family: 黑体; font-size: 15px”>server {

style=”font-family: 黑体; font-size: 15px”>listen    
 80;

style=”font-family: 黑体; font-size: 15px”>server_name
 www.test.com;

style=”font-family: 黑体; font-size: 15px”>root  
/var/www/test;

style=”font-family: 黑体; font-size: 15px”>index  index.html
index.htm;

style=”font-family: 黑体; font-size: 15px”>location /
{

style=”font-family: 黑体; font-size: 15px”>}

style=”font-family: 黑体; font-size: 15px”>#
定义错误页面码,假若出现相应的荒唐页面码,转载到那里。

style=”font-family: 黑体; font-size: 15px”>error_page  404 403 500
502 503 504  /404.html;

style=”font-family: 黑体; font-size: 15px”>#
承接上边的location。

style=”font-family: 黑体; font-size: 15px”>location = /404.html
{

style=”font-family: 黑体; font-size: 15px”>#
放错误页面的目录路径。

style=”font-family: 黑体; font-size: 15px”>root  
/usr/share/nginx/html;

style=”font-family: 黑体; font-size: 15px”>}

style=”font-family: 黑体; font-size: 15px”>}

Nginx访问一个静态的html
页面,当以此页面没有的时候,Nginx抛出404,那么哪些回到给客户端404吧?

Nginx访问一个静态的html
页面,当那么些页面没有的时候,Nginx抛出404,那么什么样回到给客户端404啊?

style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>#设定http服务器,利用它的反向代理作用提供负载均衡协理
http
{
    
#设定mime类型,类型由mime.type文件定义
   
include       /etc/nginx/mime.types;
   
default_type  application/octet-stream;
   
#设定日志格式
   
access_log    /var/log/nginx/access.log;

   
#简单上文有的部分陈设节点

   
#。。。。。。。。。。

   
#设定负载均衡的服务器列表
    
upstream mysvr {
   
#weigth参数表示权值,权值越高被分配到的几率越大
   
server 192.168.8.1x:3128 weight=5;#本机上的Squid开启3128端口
   
server 192.168.8.2x:80  weight=1;
   
server 192.168.8.3x:80  weight=6;
   
}

  
upstream mysvr2 {
   
#weigth参数表示权值,权值越高被分配到的几率越大

   
server 192.168.8.x:80  weight=1;
   
server 192.168.8.x:80  weight=6;
   
}

  
#先是个虚拟服务器
  
server {
   
#侦听192.168.8.x的80端口
       
listen       80;
       
server_name  192.168.8.x;

     
#对aspx后缀的展开负荷均衡请求
 
  location ~ .*\.aspx$ {

     
   root   /root;      #概念服务器的默许网站根目录地方
style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>         
index index.php index.html index.htm;  
#概念首页索引文件的称谓

style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>         
proxy_pass  ;#伸手转向mysvr 定义的服务器列表

style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>         
#以下是局地反向代理的配置可删除.

style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>         
proxy_redirect off;

style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>         
#后端的Web服务器可以通过X-Forwarded-For获取用户实际IP
style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>         
proxy_set_header Host $host;
style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>         
proxy_set_header X-Real-IP $remote_addr;
style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>         
proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;
style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>         
client_max_body_size 10m;   
#允许客户端请求的最大单文件字节数
style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>         
client_body_buffer_size 128k; 
#缓冲区代办缓冲用户端请求的最大字节数,
style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>         
proxy_connect_timeout 90; 
#nginx跟后端服务器连接超时时间(代理连接超时)
style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>         
proxy_send_timeout 90;       
#后端服务器数据回传时间(代理发送逾期)
style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>         
proxy_read_timeout 90;        
#连日成功后,后端服务器响应时间(代理接收超时)
style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>         
proxy_buffer_size 4k;            
#安装代理服务器(nginx)保存用户头音讯的缓冲区大小
style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>         
proxy_buffers 4 32k;              
#proxy_buffers缓冲区,网页平均在32k之下的话,那样设置
style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>         
proxy_busy_buffers_size 64k;   
#高负荷下缓冲大小(proxy_buffers*2)
style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>         
proxy_temp_file_write_size 64k; 
#设定缓存文件夹大小,大于这么些值,将从upstream服务器传

      
}

    
}
style=”font-family: ‘Microsoft YaHei’; font-size: 16px;”>}

 

 

style=”font-family: ‘Microsoft YaHei’; font-size: 14px;”>出自:

其次种:反向代理的荒唐页面

看上面的布署,这种处境下不要求修改任何参数,就能促成这几个功能。

看下边的陈设,那种景观下不必要修改任何参数,就能已毕那些效果。

倘使后台汤姆cat处理报错抛出404,想把这么些场所叫Nginx反馈给客户端或者重定向到某个连接,配置如下:

server {

listen      80;

server_name  www.test.com;

root   /var/www/test;

index  index.html index.htm;

location / {

}

# 定义错误页面码,借使出现相应的荒谬页面码,转发到那里。

error_page  404 403 500 502 503 504  /404.html;

# 承接上边的location。

location = /404.html {

# 放错误页面的目录路径。

root   /usr/share/nginx/html;

}

}

server {

listen      80;

server_name  www.test.com;

root   /var/www/test;

index  index.html index.htm;

location / {

}

# 定义错误页面码,假使现身相应的谬误页面码,转载到这边。

error_page  404 403 500 502 503 504  /404.html;

# 承接上边的location。

location = /404.html {

# 放错误页面的目录路径。

root   /usr/share/nginx/html;

}

}

style=”font-family: 黑体; font-size: 15px”>upstream www
{

style=”font-family: 黑体; font-size: 15px”>server 192.168.1.201:7777
 weight=20 max_fails=2 fail_timeout=30s;

style=”font-family: 黑体; font-size: 15px”>ip_hash;

style=”font-family: 黑体; font-size: 15px”>}

style=”font-family: 黑体; font-size: 15px”>server {

style=”font-family: 黑体; font-size: 15px”>listen      
80;

澳门金沙国际 , style=”font-family: 黑体; font-size: 15px”>server_name
www.test.com;

style=”font-family: 黑体; font-size: 15px”>root  
/var/www/test;

style=”font-family: 黑体; font-size: 15px”>index  index.html
index.htm;

style=”font-family: 黑体; font-size: 15px”> 

style=”font-family: 黑体; font-size: 15px”>location /
{

style=”font-family: 黑体; font-size: 15px”>if ($request_uri ~*
‘^/$’) {

style=”font-family: 黑体; font-size: 15px”>rewrite .*  
redirect;

style=”font-family: 黑体; font-size: 15px”>}

style=”font-family: 黑体; font-size: 15px”>#
关键参数:那么些变量开启后,我们才能自定义错误页面,当后端再次回到404,nginx拦截错误定义错误页面

style=”font-family: 黑体; font-size: 15px”>proxy_intercept_errors
on;

style=”font-family: 黑体; font-size: 15px”>proxy_pass    
 ;

style=”font-family: 黑体; font-size: 15px”>proxy_set_header HOST  
$host;

style=”font-family: 黑体; font-size: 15px”>proxy_set_header
X-Real-IP      $remote_addr;

style=”font-family: 黑体; font-size: 15px”>proxy_set_header
X-Forwarded-FOR $proxy_add_x_forwarded_for;

style=”font-family: 黑体; font-size: 15px”>}

style=”font-family: 黑体; font-size: 15px”>error_page    404
 /404.html;

style=”font-family: 黑体; font-size: 15px”>location = /404.html
{

style=”font-family: 黑体; font-size: 15px”>root  
/usr/share/nginx/html;

style=”font-family: 黑体; font-size: 15px”>}

style=”font-family: 黑体; font-size: 15px”>}

第二种:反向代理的不当页面

第二种:反向代理的谬误页面

其三种:Nginx解析php代码的错误页面

即使后台汤姆cat处理报错抛出404,想把那几个情形叫Nginx反馈给客户端照旧重定向到某个连接,配置如下:

若是后台Tomcat处理报错抛出404,想把这么些场地叫Nginx反馈给客户端依旧重定向到某个连接,配置如下:

一经后端是php解析的,须求加一个变量

upstream www {

server 192.168.1.201:7777  weight=20 max_fails=2 fail_timeout=30s;

ip_hash;

}

server {

listen       80;

server_name www.test.com;

root   /var/www/test;

index  index.html index.htm;

 

location / {

if ($request_uri ~* ‘^/$’) {

rewrite .*   redirect;

}

#
关键参数:那么些变量开启后,大家才能自定义错误页面,当后端再次回到404,nginx拦截错误定义错误页面

proxy_intercept_errors on;

proxy_pass      ;

proxy_set_header HOST   $host;

proxy_set_header X-Real-IP      $remote_addr;

proxy_set_header X-Forwarded-FOR $proxy_add_x_forwarded_for;

}

error_page    404  /404.html;

location = /404.html {

root   /usr/share/nginx/html;

}

}

upstream www {

server 192.168.1.201:7777  weight=20 max_fails=2 fail_timeout=30s;

ip_hash;

}

server {

listen       80;

server_name www.test.com;

root   /var/www/test;

index  index.html index.htm;

 

location / {

if ($request_uri ~* ‘^/$’) {

rewrite .*   redirect;

}

#
关键参数:这么些变量开启后,我们才能自定义错误页面,当后端重临404,nginx拦截错误定义错误页面

proxy_intercept_errors on;

proxy_pass      ;

proxy_set_header HOST   $host;

proxy_set_header X-Real-IP      $remote_addr;

proxy_set_header X-Forwarded-FOR $proxy_add_x_forwarded_for;

}

error_page    404  /404.html;

location = /404.html {

root   /usr/share/nginx/html;

}

}

在http段中加一个变量 fastcgi_intercept_errors
on 就可以了。

其三种:Nginx解析php代码的一无可取页面

其三种:Nginx解析php代码的不当页面

指定一个指鹿为马页面:

设若后端是php解析的,须求加一个变量

假设后端是php解析的,必要加一个变量

style=”font-family: 黑体; font-size: 15px”>error_page    404
 /404.html;

style=”font-family: 黑体; font-size: 15px”>location = /404.html
{

style=”font-family: 黑体; font-size: 15px”>root  
/usr/share/nginx/html;

style=”font-family: 黑体; font-size: 15px”>}

在http段中加一个变量 fastcgi_intercept_errors on 就足以了。

在http段中加一个变量 fastcgi_intercept_errors on 就可以了。

点名一个url地址:

指定一个荒唐页面:

指定一个谬误页面:

style=”font-family: 黑体; font-size: 15px”>error_page 404
 /404.html;

style=”font-family: 黑体; font-size: 15px”>error_page 404 =
;

style=”font-family: 陶文; font-size: 15px”>文章来自:

error_page    404  /404.html;

location = /404.html {

root   /usr/share/nginx/html;

}

error_page    404  /404.html;

location = /404.html {

root   /usr/share/nginx/html;

}

指定一个url地址:

指定一个url地址:

error_page 404  /404.html;

error_page 404 = ;

error_page 404  /404.html;

error_page 404 = ;

相关文章