欢迎来到云服务器

服务器租用

Nginx error_page设置指令

本日偶尔会见了一个线上应用不存在的url,应用报错,呈现了乱码。

乱码是从nginx转发的tomcat报出来的。tomcat默认处理惩罚HTML是以ISO-8859-1处理惩罚的,所以就发生了乱码。

办理这个error_page的途径我实验了两种要领:

1、让tomcat返回正常的非乱码的error_page

     tomcat的错误页是在项目标web.xml中设置的,荷兰服务器 英国主机租用,可是除了这个之外,别无其它编码设置。在网上搜索了有人提现将.html这种页面也交由jsp servlet处理惩罚就好,我认为这种方法欠好,所以直接没实验。

     我设置的web.xml如下:


<error-page>
        <error-code>500</error-code>
        <location>/error.html</location>
</error-page>

那么首先想到的就是把error.html页的返转头改掉:


<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>

可是改后,不幸的是照旧不可!

tomcat照旧把它处理惩罚成ISO-8859-1了。杯具!

2、第二种途径是不管tomcat返回的错误页,直接利用nginx的错误页

     这里要留意一件事就是必然要设置nginx这个选项:proxy_intercept_errors on;

     这个选项默认在nginx是off的。

     所以这时候你设置的所有error_page错误页都不会生效。为此我查了良久才知道是这个原因。

     我的设置:


location   / {
        proxy_set_header Host $host;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-Proto  $scheme;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_pass http://127.0.0.1:8080;
        proxy_intercept_errors on;
}

腾讯云代理

Copyright © 2003-2021 MFISP.COM. 国外vps服务器租用 梦飞云服务器租用 版权所有 粤ICP备11019662号