2023年12月13日发(作者:)
配置nginx重定向到系统维护页面
上周末兄弟项目准备扩展服务器以便提供更好的服务,兄弟项目有一些功能是实时提供到我这边的,需要我这边暂时把对应系
统功能屏蔽,因为使用nginx,所以可以直接配置nginx重定向到固定系统维护页面。
nginx重定向其实很简单,用return或rewrite关键字均可,因为重定向后直接跳转到静态页面,不需要后续操作和记录,所以直
接301永久重定向。
其中重定向既可以在server中配置,也可以在具体的location中配置,下面分别简单介绍。
在server中配置:
http {
server{
listen 80;
server_name ;
# 以下return 或 rewrite 选择其中一个就行。其中 是自己写的提示页面
return 301 /;
# rewrite ^/(.*)$ / permanent;
location / { # 此处省略后面配置内容 } } }
或者在location中配置:
http {
server{
listen 80;
server_name ;
location / {
rewrite ^/(.*)$ / permanent;
# 此处省略后面配置内容 } } }
从以上实例看出,return用301参数重定向,rewrite用permanent(当然还可以用break,last,区别的话自己查资料)。
不知道你们有没有发现,以上两个例子中,都是用 去重定向到 ,我试过,用直接重定向到
/,会报错重复次数太多,也就是进入死循环。在同时管理多个域名是可以配置用A重定向B,但是如果只
有一个域名A那怎么弄呢?
这时候就用到if条件判断了,此处我们以在server中配置为例说明:
http {
server{
listen 80;
server_name ;
# 注意 if 后面必须有一个空格
if ($request_uri !~ "/$") {
return 301 /;
}
location / {
# 此处省略后面配置内容
}
}
}
以上实例说明,当访问路径不包含 /时就重定向到,此时能够重定向,不会再有重复次数太多的提
示,但有另一个问题,就是中的图片无法显示了,暂时没时间去研究如何避免图片被重定向了,后面有时间再补
充。
测试if条件的时候,遇到一个特别坑的事,就是添加if后重启nginx报错:
Job for e failed because the control process exited with error code. See "systemctl status e" and
"journalctl -xe" for details.
输入systemctl status e可查看错误信息,其中nginx: [emerg] unknown directive "if($request_uri"错误查找到答
案,原来是if后面必须要有一个空格,太坑了,网上那些介绍nginxif的文章都没有提到这么重要的信息。。。
感谢资料:知识点补充
配置nginx输入任何地址都跳转至维护页面
笔记一下:配置nginx输入任何地址都跳转至维护页面
server {
listen 80;
root /xxx/xxx/src;
index ;
server_name ;
set $flag 0;
if ($request_uri !~ "(/static/.*)$"){
set $flag "${flag}1";
}
if ($request_uri !~ "/$" ){
set $flag "${flag}2";
}
if ($flag = "012") {
rewrite ^(.*) / permanent;
}
location /{
...
以上就是nginx 重定向到系统维护页面的详细内容,更多关于nginx重定向维护页面的资料请关注其它相关文章!


发布评论