一个网站项目,肯定是避免不了404页面的,通常使用Nginx作为Web服务器时,有以下集中配置方式,一起来看看。

第一种:Nginx自己的错误页面

Nginx访问一个静态的html 页面,当这个页面没有的时候,Nginx抛出404,那么如何返回给客户端404呢?

看下面的配置,这种情况下不需要修改任何参数,就能实现这个功能。

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;

}

}

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

如果后台Tomcat处理报错抛出404,想把这个状态叫Nginx反馈给客户端或者重定向到某个连接,配置如下:

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 .*   http://www.test.com/index.html redirect;

}

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

proxy_intercept_errors on;

proxy_pass      http://www;

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;

}

}

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

如果后端是php解析的,需要加一个变量

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

指定一个错误页面:

error_page    404  /404.html;

location = /404.html {

root   /usr/share/nginx/html;

}

指定一个url地址:

error_page 404  /404.html;

error_page 404 = http://www.test.com/error.html;

文章来自:http://www.yunweipai.com/archives/22238.html

Nginx实现404页面的几种方法的更多相关文章

  1. Nginx实现404页面的几种方法【转】

    一个网站项目,肯定是避免不了404页面的,通常使用Nginx作为Web服务器时,有以下集中配置方式,一起来看看. 第一种:Nginx自己的错误页面 Nginx访问一个静态的html 页面,当这个页面没 ...

  2. Apacheserver自己定义404页面的两种方法以及.htaccess的重要命令总结

    Apacheserver自己定义404错误页面有两种方法: 第一种方法最简单,直接在Apache的httpd.conf下进行配置改动命令,改动的内容请參看.htaccess命令写法中的自己定义错误页面 ...

  3. springmvc跳转到自定义404页面的三种方法

    有时候我们并不想跳转到系统自定义的错误页面中,那么我们需要自定义页面并且实现它的跳转 有三种方法可以实现 方法一:最简单的实现,也是最快的 在<web-app>节点下配置 代码如下: &l ...

  4. Javascript刷新页面的几种方法

    Javascript刷新页面的几种方法: window.navigate(location)location.reload()location=locationlocation.assign(loca ...

  5. Javascript刷新页面的八种方法

    /** * Javascript刷新页面的八种方法 * 说明一下,jQuery没有发现刷新页面的方法. */ 1 history.go(0) 2 location.reload() 3 locatio ...

  6. JS刷新页面的几种方法(转)

    Javascript刷新页面的几种方法: 1 history.go(0) 2 location.reload() 3 location=location 4 location.assign(locat ...

  7. asp.net跳转页面的三种方法比较

    目前,对于学习asp.net的很多朋友来讲,实现跳转页面的方法还不是很了解.本文将为朋友们介绍利用asp.net跳转页面的三种方法,并对其之间的形式进行比较,希望能够对朋友们有所帮助. ASP.NET ...

  8. php抓取页面的几种方法详解

    本篇文章是对php抓取页面的几种方法进行了详细的分析介绍,需要的朋友参考下 在 做一些天气预报或者RSS订阅的程序时,往往需要抓取非本地文件,一般情况下都是利用php模拟浏览器的访问,通过http请求 ...

  9. Javascript刷新页面的几种方法:

    Javascript刷新页面的几种方法: 1    history.go(0) 2    window.location.reload() window.location.reload(true)  ...

随机推荐

  1. MySQL安装时MySQL server一直安装失败日志显示This application requires Visual Studio 2013 Redistributable

    使用MySQL社区版的msi包进行安装,试了好多次,别的组件都能正常安装,只有MySQL server的安装状态显示为fail.删除所有安装的程序,包括所依赖的各种Microsoft发布的包,删除所有 ...

  2. vue3.0使用axios报错问题记录

    vue-cli3.0使用axios的时候出现错误,记录一下 报错信息: Uncaught TypeError: Cannot set property $axios of #<Vue> w ...

  3. DataTable2JSON 和 DataTable2Class 性能比较

    DataTable 用 5000行和50000行数据做测试,得出转class效率貌似高一点点,不过优化并不大,还是 sql ,网络请求方面做优化比较显著. jobject 2019-03-07 06: ...

  4. strcmp()字符串比较函数用法

    函数原型: int strcmp(const char *s1, const char *s2); 头文件: #include <string.h> 功能: 用来比较两个字符串 参数: s ...

  5. HTML5外包团队:HTML5 Canvas使用教程

    canvas 元素用于在网页上绘制图形. 什么是 Canvas? HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像. 画布是一个矩形区域,您可以控制其每一像素. canv ...

  6. java动态代理实现与原理详细分析(代码层面解释了AOP的实现)

    关于Java中的动态代理,我们首先需要了解的是一种常用的设计模式--代理模式,而对于代理,根据创建代理类的时间点,又可以分为静态代理和动态代理. 一.代理模式    代理模式是常用的java设计模式, ...

  7. [Database] 不知道表名和字段查找值=1234的数据.

      --如果表比较大,时间会比较长 DECLARE @searchValue NVARCHAR(50) SET @searchValue='1234' DECLARE @t TABLE ( rowNu ...

  8. sql字符串根据日期产生日期+自增长标志

    select Convert(varchar(6), '20180614 20:19:04', 12) + SubString('0000' + Convert(varchar(6), 1 + 1), ...

  9. js vue 在页面中将摄像头放在一个标签里展示,(模仿手机拍照功能)

    1.HTML <video id="video" autoplay class="fileImg"></video> <canva ...

  10. SWUST OJ(1038)

    顺序表中重复数据的删除 #include <iostream> #include <cstdlib> using namespace std; int main() { int ...