必威-必威-欢迎您

必威,必威官网企业自成立以来,以策略先行,经营致胜,管理为本的商,业推广理念,一步一个脚印发展成为同类企业中经营范围最广,在行业内颇具影响力的企业。

Nginx自己的错误页面,反向代理的错误页面

2019-11-30 05:19 来源:未知

叁个网址项目,料定是防止不了404页面包车型地铁,平常接受Nginx作为Web服务器时,有以下聚集陈设形式,一同来看看。

转自

在那记录下Nginx服务器nginx.conf的安插文件表明, 部分注释采摘与互联网.

生龙活虎、Nginx负载均衡
Nginx负载均衡配置很简短,能够实现7层的载荷,对生龙活虎部分轻量级访谈量的站点依然很实用的。

首先种:Nginx本人的失实页面

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卡塔尔(英语:State of Qatar)中的黄金时代种艺术,但是仅用于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;
        }

    # 定义错误提醒页面
    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 脚本央浼全部倒车到 FastCGI处理. 使用法斯特CGI暗中认可配置.
    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;">}

1、架构
系统版本: CentOS 6.6 x86_64
nginx版本: 1.10.2  #这两天时髦版本
服务器:
负载均衡server  10.0.18.146 端口 80
后端web server  10.0.18.144 端口 80  10.0.18.145 端口80

Nginx访谈叁个静态的html 页面,当以此页面未有的时候,Nginx抛出404,那么怎么样回到给客商端404吧?

 

如上是有个别主导的安顿,使用Nginx最大的好处正是负载均衡

2、配置进度
在三台服务器上计划nginx的yum源
#cat /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=
gpgcheck=0
enabled=1
下一场使用yum安装nginx
#yum install nginx -y

看上边包车型地铁陈设,这种景观下无需改正任何参数,就会兑现那个成效。

第生机勃勃种:Nginx本人的大谬不然页面

借使要动用负载均衡的话,能够纠正配置http节点如下:

在三台服务器上布署张开文件数
#tail -5 /etc/security/limits.conf 
# End of file
* soft nofile 65535
* hard nofile 65535
* soft    nproc    10240         
* hard    nproc    10240

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呢?

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跟后端服务器连接超时时间(代理连接超时卡塔尔(英语:State of Qatar)
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;">出自:

布置后端两台server:10.0.18.144,如下:
#cat /etc/nginx/nginx.conf          #纠正如下两项,别的不变
events { 
    use epoll;                      #使用epoll
    worker_connections  10240;      #充实连接数
}
#cat /etc/nginx/conf.d/default.conf #修改server_name 别的不变
server {
    listen      80;
    server_name  nginx1.test.com;
………………
}
改革默许页面如下:
#cat /usr/share/nginx/html/index.html  #扩大18.144,别的不变
…………
<h1>Welcome to nginx 18.144!</h1>
…………
启动nginx
#service nginx start

其次种:反向代理的谬误页面

看下边包车型大巴布置,这种气象下无需改善任何参数,就能够促成这么些功能。

在物理机加多域名拆解深入分析如下:
添加在hosts中 --->C:WindowsSystem32driversetchosts
10.0.18.144 nginx1.test.com
10.0.18.145 nginx2.test.com
10.0.18.146 balance.test.com

万生龙活虎后台汤姆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;

}

}

在浏览器访问,如下:

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">}

其次种:反向代理的大谬不然页面

图片 1

其二种:Nginx剖判php代码的谬误页面

要是后台汤姆cat处理报错抛出404,想把那个意况叫Nginx反馈给顾客端依旧重定向到有些连接,配置如下:

构造后端两台server:10.0.18.145,方法和18.144同蓬蓬勃勃,不再赘言,在浏览器访谈如下:

假如后端是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;

}

}

图片 2

在http段中加二个变量 fastcgi_intercept_errors on 就能够了。

其二种:Nginx深入深入分析php代码的失实页面

3、配置负载均衡server
先查看配置文件:

点名三个谬误页面:

后生可畏经后端是php深入分析的,供给加二个变量

#cat nginx.conf
events {
    use epoll;
    worker_connections  10240;
}
 
http {
    include      /etc/nginx/mime.types;
    default_type  application/octet-stream;
 
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
 
    access_log  /var/log/nginx/access.log  main;
 
    sendfile        on;
    #tcp_nopush    on;
 
    keepalive_timeout  65;
 
    #gzip  on;
 
    #include /etc/nginx/conf.d/*.conf;
    upstream backend {                      #拉长的后端server,权重为1
          server 10.0.18.144 weight=1;
          server 10.0.18.145 weight=1;
  }
  server {
        listen 80;
        server_name balance.test.com;
        location / {
            proxy_set_header Host $host;  #设置主机头和客户端真实地址
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_buffering on;          #开启缓存
            proxy_pass    #趋向代理地址
        } 
}
}
下一场运行nginx
#service nginx start

TAG标签:
版权声明:本文由必威发布于必威-操作系统,转载请注明出处:Nginx自己的错误页面,反向代理的错误页面