首页 > 系统相关 >Nginx配置站点502维护页面

Nginx配置站点502维护页面

时间:2023-08-25 14:44:17浏览次数:30  
标签:header Nginx html proxy maintenance 502 页面

在站点后端服务如果宕掉或在重启的时候,用户访问网站时,nginx引导跳转到网站维护页面。    为了实现这个功能,需要在Nginx配置中做两件事情:

  1. 定义一个备用的错误页面:为Nginx设置一个备用页面,当后端服务不可用时,它将显示这个页面。
  2. 使用proxy_intercept_errors指令:使Nginx能够拦截来自后端的错误响应,并替换为定义的错误页面。

下面是如何配置的示例:

  1. 创建维护页面:

    在服务器上创建一个HTML页面,例如 /var/www/html/maintenance.html,内容为:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>维护中</title>
    </head>
    <body>
        <h1>网站维护中,请稍后再试...</h1>
    </body>
    </html>

     

  2. 修改Nginx配置:

    在你的Nginx配置中,加入以下指令:

    http {
        ...
    
        # 定义错误页面
        error_page 502 /maintenance.html;
    
        server {
            ...
    
            location / {
                proxy_pass http://your_backend_address;
                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_intercept_errors on;
            }
    
            # 为维护页面定义一个location块
            location = /maintenance.html {
                root /var/www/html; # 根据你的实际路径更改
                internal; # 这意味着此位置只能由内部请求访问
            }
        }
    }

在这个配置中,当后端返回502 Bad Gateway错误(意味着后端服务不可用)时,Nginx会显示maintenance.html页面。

或者

  

server {
    listen 80;

    location / {
        proxy_pass http://your_backend_server_address;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;

        # 定义错误页面
        error_page 502 503 504 /maintenance.html;
    }

    # 为维护页面提供一个位置
    location = /maintenance.html {
        root /path/to/your/maintenance/page/directory;
        internal;
    }
}

 

当完成上述配置后,记得重新加载或重启Nginx以使更改生效。

sudo nginx -s reload

 

标签:header,Nginx,html,proxy,maintenance,502,页面
From: https://www.cnblogs.com/shamo89/p/17656879.html

相关文章

  • 切割指定时间范围内的nginx日志
    切割指定时间范围内的nginx日志cataccess.log|awk-F"[|/]"'$6>="2017:19:00:00"&&$6<="2017:20:00:00"{print$0}'说明:-F域分隔符,这里指定了[]里面的内容,取/后面的内容$6表示日志里面的时间&&并且关系$0取出结果......
  • ajax完美解决跨域问题(jsonp、nginx反向代理)
    做过web前端人都知道,经常会有ajax跨域问题,下面列举我经常使用的解决办法第一种:使用jsonp,jquery的ajax方法支持jsonp,但是最大的缺点就是只支持get方式,而且服务端也要修改客户端test.html代码<!DOCTYPEhtml><html><head> <title>工作端</title> <metaname="viewport"content=......
  • 解决Nginx SSL 代理 Tomcat 获取 Scheme 总是 Http 问题
    背景公司之前用的是http,但是出于苹果app审核和服务器安全性问题,要改为https,我们公司用的是沃通的ssl,按照沃通的官方文档提供的步骤完成服务器的配置。架构上使用了Nginx+tomcat集群,且nginx下配置了SSL,tomcat没有配置SSL,项目使用https协议。原因配置成功后明明是https......
  • 【校招VIP】前端校招考点之页面转换算法
    考点介绍:在地址映射过程中,若在页面中发现所要访问的页面不在内存中,则产生缺页中断。当发生缺页中断时,如果操作系统内存中没有空闲页面,则操作系统必须在内存选择一个页面将其移出内存,以便为即将调入的页面让出空间。而用来选择淘汰哪一页的规则叫做页面置换算法。一、考点题目1......
  • uniapp路由跳转后通过uni.$emit和uni.$on页面通讯后,接收到数据但是却赋值不了
    原因:跳转到未渲染过的页面时,页面还没渲染就进行赋值操作,所以赋值不上去。      如果往后跳转,可以使用uni.$emit和uni.$on页面传值。即uni.navigateBack({delta:1}),尽量不要使用uni.navigateTo(会造成页面重叠)。能够接收到数据并赋值。解决办法:使用EventChannel代码......
  • CentOS7.9搭建开发环境(Java、MySQL、Nginx、Redis)
    系统使用的阿里云CentOS7.964位SCC版。先安装个文件上传下载工具lrzsz,xshell登录终端,运行下面的命令:yuminstall-ylszrz 这是因为yum源的问题,需要修改yum配置。执行以下命令:cd/etc/yum.repos.dmvCentOS-Base.repoCentOS-Base.repo.backupwgethttp://mirrors.......
  • filebeat 配置采集nginx 日志
    filebeat配置nginx日志采集filebeat采集需求1.需要将以往30天的日志输出到es,并且以时间按天展示2.将不同的时间字段解析出来,输出到esnginx配置json日志log_formatlog_json'{"remoteAddr":"$clientRealIp",''"date_timeLocal":"$time_local",......
  • Linux之Shell脚本与Nginx
    1.入门Shell脚本1.1HelloWord打开我们的finalshell软件连接虚拟机在/usr/local/下创建一个点后缀为test的文件且编辑文件文件头部固定语句必须输入#!/bin/bash随后在下面我们直接输出一句Helloword按下ESC键且输入:wq保存退出后,这时不能直接执行,因为这个时候的文件你......
  • 小程序 页面通信
    一、小程序使用npm包1.初始化package.json在当前项目打开命令行,运行npminit必须属性有:name、version,其他属性都可删除2.勾选允许使用npm   在微信开发者工具上,点击详情->本地设置->使用npm模块。 3.下载npm包npminstallpackageName4.构建......
  • Nginx内置lua版OpenResty拦截转发请求Redis等操作
    Nginx内置lua版OpenResty拦截转发请求Redis等操作1下载并安装OpenRestyhttp://openresty.org/cn/download.html2下载lua-resty-http-0.17.1库以让openresty的lua支持外部http访问能力lua-resty-http-0.17.11下载lua-resty-http-0.17.12然后将文件中lua-resty-http......