Nginx 前端服务器 转发后端请求 自定义错误页面

那年烟雨落申城
• 阅读 294

算是备忘吧

nginx server 配置:(版本号1.16.1)

server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  xxx.net;
        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;
        #nginx 本身发生404 500等错误时使用这个
        fastcgi_intercept_errors on;
        #nginx转发出去的请求返回404 500等这个才起作用
        #proxy_intercept_errors
        #前端配置 访问路径 / 就是访问前端主页面
        location / {
            #要想转到自定义的404 500页面  以下这个要配置的
            root /home/xxx/html/dist;
            # 不要写成  index index.html,index.html; 访问xxx.net会报403错误 正确写法是  index index.html index.html;不用逗号  用空格
            #要想转到自定义的404 500页面  以下这个要配置的
            index index.html;
            proxy_set_header HOST   $host;
            proxy_set_header X-Real-IP      $remote_addr;
            proxy_set_header X-Forwarded-FOR $proxy_add_x_forwarded_for;
        }

        # 后端请求地址为http://xxx.net/api开头 此处将/api开头的地址进行转发
        # 这样做的好处是不用做跨域 因为在同一个域下
        location ^~ /api {
            # 下面这一行端口号后面的 / 不要掉 这个 / 代表将上面路径中的 /api去掉
            # 访问http://xxx.net/api/user/getById?id=1 
            # 会转化成 http://localhost:8080/user/getById?id=1
            # 如果端口号后没有 / 那么/api会被带上 上面的
            # 地址就成 http://localhost:8080/api/user/getById?id=1
            proxy_pass http://localhost:8080/;
        }

        # 当返回值是404时跳转到/404.html这个url
        error_page 404 /404.html;
        #下面这个=不能少
        location = /404.html {
            #自定义的404.html放在以下路径 有请求/404.html就使用这个配置
            root /home/xxx/html/dist;
        }
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
            #自定义的50x.html放在以下路径
            root /home/xxx/html/dist;
        }
    }

遇到的问题和注意点都写在注释里面了。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
java将前端的json数组字符串转换为列表
记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang
Easter79 Easter79
3年前
springboot2之优雅处理返回值
前言最近项目组有个老项目要进行前后端分离改造,应前端同学的要求,其后端提供的返回值格式需形如{"status":0,"message":"success","data":{}}方便前端数据处理。要实现前端同学这个需求,其实也挺简单的,
Wesley13 Wesley13
3年前
VBox 启动虚拟机失败
在Vbox(5.0.8版本)启动Ubuntu的虚拟机时,遇到错误信息:NtCreateFile(\\Device\\VBoxDrvStub)failed:0xc000000034STATUS\_OBJECT\_NAME\_NOT\_FOUND(0retries) (rc101)Makesurethekern
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
3年前
ELK学习笔记之配置logstash消费kafka多个topic并分别生成索引
0x00 filebeat配置多个topicfilebeat.prospectors:input_type:logencoding:GB2312fields_under_root:truefields:添加字段
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Wesley13 Wesley13
3年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_