一、概述

  nginx指令error_page的作用是当发生错误的时候能够显示一个预定义的uri

1.1、使用步骤

  更改nginx.conf在http定义区域加入: proxy_intercept_errors或者fastcgi_intercept_errors

fastcgi_intercept_errors on;#默认off

  如果没这句的不管是error_page 还是nginx自带的404跳转都不能正常显示(访问不存在的页面时可能会显示“No input file specified.”)

  • 默认: fastcgi_intercept_errors off
  • 添加位置: http, server, location, location 中的if字段
  • 默认情况下,nginx不支持自定义404错误页面,只有这个指令被设置为on,nginx才支持将404错误重定向

1.2、配置全局错误【可不配置】

  可以在http下添加

error_page                  = http://www.github.com/404.html;

1.3、针对http中server具体配置error_page

  更改nginx.conf,在server 区域加入: error_page 404  /404.html  或者 error_page 404 =http://www.xxx.com/404.html

1.3.1、方式一、本地文件-直接读取本地物理文件

    error_page                   /.html;

    location =/.html {
root /export/servers/nginx/html;
}

  实际上产生了一个内部跳转(internal redirect),当访问出现上述错误码的时候就能返回404.html中的内容,这里需要注意是否可以找到404.html页面,所以加了个location保证找到你自定义的404页面。

1.3.2、方式二、指向具体url

error_page  http://www.xxx.com/404.html

1.3.3、方式三、设置named location,然后在里边做对应的处理。

error_page     @jump_to_error;
location @jump_to_error {
proxy_pass http://backend;
}

同时error_page在一次请求中只能响应一次,对应的nginx有另外一个配置可以控制这个选项:recursive_error_pages

默认为false,作用是控制error_page能否在一次请求中触发多次。

1.4、重定义响应码【使用等号】

1、自己定义返回状态码【等号后面追加响应码 如 =200】

    error_page 400 401 402 403 404 405 408 410 412 413 414 415 500 501 502 503 504 506 =200 /404.html;

    location =/404.html {
root /export/servers/nginx/html;
}

  这样用户访问产生上述响应码的时候给用户的返回状态是200,内容是404.html。

2、使用要访问页状态码【等号后面不写响应码 如 =】

    error_page                   = /.html;

    location =/.html {
root /export/servers/nginx/html;
}

二、压缩

gzip压缩作用:将响应报⽂发送⾄客户端之前可以启⽤压缩功能,这能够有效地节约带宽,并提⾼响应⾄客户端的速度,压缩会消耗nginx的cpu性能

gzip压缩可以配置http,server和location模块下

0.压缩语法

location ~ .*\.(jpg|gif|png|bmp)$   //~区分大小写, 匹配任意字符开头以.jpg或.bmp结尾,注意这里的jgp等类型需要使用gzip_types调用
gzip on; //开启gzip压缩
gzip_http_version 1.1 //压缩协议版本
gzip_comp_level 3; //压缩比率
gzip_types //压缩类型,根据/usr/local/nginx/conf/mime.types中定义;

示例:

        location ~ .*\.(jpg|gif|png|bmp)$ {
gzip on;
gzip_http_version 1.1;
gzip_comp_level 3;
gzip_types text/plain application/json application/x-javascript application/css application/xml application/xml+rss text/javascript application/x-httpd-php image/jpeg image/gif image/png image/x-ms-bmp;
}
}

006-nginx.conf详解-error_page 使用的更多相关文章

  1. 004-mac上安装以及Nginx 配置文件nginx.conf详解

    1.mac上nginx安装 安装brew:go-001-环境部署,IDEA插件 安装nginx: brew search nginx brew install nginx 当然也可以编译安装 安装完以 ...

  2. Nginx 配置文件 nginx.conf 详解

    Nginx的配置文件nginx.conf配置详解如下: user nginx nginx; #Nginx用户及组:用户 组.window下不指定 worker_processes 8; #工作进程:数 ...

  3. Nginx安装及配置文件nginx.conf详解

    1.安装Nginx 在安装Nginx之前,需确保系统已经安装了gcc. openssl-devel. pcre-devel和zlib-devel软件库. 下面是Nginx安装过程: wget http ...

  4. Nginx安装与配置文件nginx.conf详解

    引用“http://ixdba.blog.51cto.com/2895551/790611” 1.安装Nginx在安装Nginx之前,需确保系统已经安装了gcc. openssl-devel. pcr ...

  5. nginx.conf详解

    ##定义nginx运行的用户各用户组user nginx nginx; ##nginx进程数,建议设置与cpu核心数一致worker_processes 1; #为每个进程分配CPU的工作内核 wor ...

  6. nginx作为web服务以及nginx.conf详解

    Nginx系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html 1.nginx简介 nginx是一个优秀的web服务程序.反向代理程序.它采用非 ...

  7. Nginx配置文件nginx.conf详解

    #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_processes 8; #全局错误日志定义类型,[ debug | ...

  8. Nginx配置文件nginx.conf详解(转)

    #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_processes 8; #全局错误日志定义类型,[ debug | ...

  9. Nginx 中 nginx.conf 详解

    #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_processes 8; #全局错误日志定义类型,[ debug | ...

随机推荐

  1. golang测试

    简述 Go语言中自带有一个轻量级的测试框架testing和自带的go test命令来实现单元测试和性能测试. go test [-c] [-i] [build flags] [packages] [f ...

  2. Linux无法免密登录的原因

    一.免密登录的方法 下面操作是把/root/.ssh/id_dsa.pub文件内容追加到192.168.7.100系统中的/root/.ssh/authorized_keys文件中 # 创建并发送密钥 ...

  3. 类型转换的时候,.valueOf()和.parseX(),.Xvalue()的区别

    .valueOf()返回的是包装类(Wrapper Class)中的一些类型:而.parseX()返回的是基本数据类型,如int,char,double等.其参数应该是String类型. .Xvalu ...

  4. 2019年杭电多校第一场 1002题Operation(HDU6579+线性基)

    题目链接 传送门 题意 初始时有\(n\)个数,现在有\(q\)次操作: 查询\([l,r]\)内选择一些数使得异或和最大: 在末尾加入一个数. 题目强制在线. 思路 对于\(i\)我们记录\([1, ...

  5. python应用-工资计算

    """ 工资计算 Author:罗万财 Date:2017-6-8 """ salary=float(input('请输入工资:')) in ...

  6. JAVA接口与类的区别

    抽象类:一个类中有抽象方法,这个类就变成了抽象类.抽象类中class的前面必须有abstract修饰符.抽象类中可以有普通方法,也可以有抽象方法,而抽象方法的个数可以是0个,也可以是多个.子类继承父类 ...

  7. js沉思录一:js的核心概念

    js的核心概念: 原型.对象(Object).函数(Function); 原型:路由路径上非叶子结点的对象: 对象:无序属性(包括函数)的集合: 函数:函数上下文的集合: 原型: 原型的创建.指定.修 ...

  8. 浙大PAT 2-10. 海盗分赃——经典博弈

    题意 P个海盗偷了D颗钻石后分赃($3 \leq P, D\leq 100$),采用分赃策略: 从1号开始,提出一个分配金币的方案,如果能够得到包括1号在内的绝对多数(即大于半数)同意,则执行该方案, ...

  9. Mobius

    Mobius 形式一 \[ f\left(n\right) = \sum_{d|n}g\left(d\right) \\ g\left(n\right) = \sum_{d|n}\mu\left(d\ ...

  10. 2.学习SpringMVC注解入门篇

    一.SpringMVC执行流程 . 二.创建项目学习SpringMVC注解 按照我之前的SpringMVC创建项目,首先创建一个项目springmvc01,配置好pom.xml,web.xml,spr ...