Nginx文件已经存在全局反向代理问题排查记录


Posted in Servers onJuly 15, 2022

项目场景:

阿里云搭建的宝塔Linux面板,上面已经搭建过其它网站了,我现在给一个新增的网站增加一个反向代理端口,但是通过宝塔面板添加反向代理的时候,出现了下图伪静态的错误。

Nginx文件已经存在全局反向代理问题排查记录

问题描述

伪静态/nxinx主配置/vhost/文件已经存在全局反向代理

这个问题是其实是告诉我们nginx配置文件里面一个网站只能包含一个location /,不然就会产生报错了。

原因分析:

问题已经非常清楚了,就是nginx.conf的相关配置出现问题。

第一步,查看网站的相关配置文件,直接点击网站进入详情就可以查看配置文件了。

Nginx文件已经存在全局反向代理问题排查记录

server
{
    listen 80;
    server_name www.123456.com;
    index index.php index.html index.htm default.php default.htm default.html;
    root /www/wwwroot/www.123456.com;
    
    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    #SSL-END
    
    #ERROR-PAGE-START  错误页配置,可以注释、删除或修改
    #error_page 404 /404.html;
    #error_page 502 /502.html;
    #ERROR-PAGE-END
    
    #PHP-INFO-START  PHP引用配置,可以注释或修改
    include enable-php-74.conf;
    #PHP-INFO-END
    
    #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
    include /www/server/panel/vhost/rewrite/www.123456.com.conf;
    #REWRITE-END
    
    #禁止访问的文件或目录
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
    {
        return 404;
    }
    
    #一键申请SSL证书验证目录相关设置
    location ~ \.well-known{
        allow all;
    }
    
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
        error_log /dev/null;
        access_log /dev/null;
    }
    
    location ~ .*\.(js|css)?$
    {
        expires      12h;
        error_log /dev/null;
        access_log /dev/null; 
    }
    access_log  /www/wwwlogs/www.123456.com.log;
    error_log  /www/wwwlogs/www.123456.com.error.log;
}

可以看到我这个配置页面并没有出现单独的location /规则,都是加入了相关的后缀限制。但是可以看到上面还出现了一个  include /www/server/panel/vhost/rewrite/www.123456.com.conf 重写的规则配置文件。

切换到这个目录查看这个文件。

Nginx文件已经存在全局反向代理问题排查记录

可以看到这个文件也是空的,没有任何配置,有些问题可能是配置了下面的伪静态规则,如果配置了的话,会显示在那个rewrite文件夹下的配置文件里面的。

Nginx文件已经存在全局反向代理问题排查记录

现在基本可以确定这个网站的配置,没有伪静态配置,也没有其它单独的location /配置。

那问题只能出在了nginx.conf原本的配置文件里面了,可以在下面的路径查看nginx文件配置,如果你首页添加了nginx的图标,也可以直接点进去配置,也可以直接通过ssh软件登录然后直接修改文件。

Nginx文件已经存在全局反向代理问题排查记录

Nginx文件已经存在全局反向代理问题排查记录

查看这个nginx.conf配置文件

user  www www;
worker_processes auto;
error_log  /www/wwwlogs/nginx_error.log  crit;
pid        /www/server/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;

events
    {
        use epoll;
        worker_connections 51200;
        multi_accept on;
    }

http
    {
        include       mime.types;
        #include luawaf.conf;


        include proxy.conf;

        default_type  application/octet-stream;

        server_names_hash_bucket_size 512;
        client_header_buffer_size 32k;
        large_client_header_buffers 4 32k;
        client_max_body_size 50m;

        sendfile   on;
        tcp_nopush on;

        keepalive_timeout 60;

        tcp_nodelay on;

        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 300;
        fastcgi_read_timeout 300;
        fastcgi_buffer_size 64k;
        fastcgi_buffers 4 64k;
        fastcgi_busy_buffers_size 128k;
        fastcgi_temp_file_write_size 256k;
        fastcgi_intercept_errors on;

        gzip on;
        gzip_min_length  1k;
        gzip_buffers     4 16k;
        gzip_http_version 1.1;
        gzip_comp_level 2;
        gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml;
        gzip_vary on;
        gzip_proxied   expired no-cache no-store private auth;
        gzip_disable   "MSIE [1-6]\.";

        limit_conn_zone $binary_remote_addr zone=perip:10m;
        limit_conn_zone $server_name zone=perserver:10m;

        server_tokens off;
        access_log off;

server
    {
        listen 888;
        server_name phpmyadmin;
        index index.html index.htm index.php;
        root  /www/server/phpmyadmin;
        location ~ /tmp/ {
               return 403;
          }


        #error_page   404   /404.html;
        include enable-php.conf;

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

        location ~ /\.
        {
            deny all;
        }
        
        location / {
            if (!-e $request_filename){
                rewrite  ^(.*)$  /index.php?s=$1  last;   break;
            }
        }

        access_log  /www/wwwlogs/access.log;
    }
    include /www/server/panel/vhost/nginx/*.conf;
}

可以看到,确实存在一个location /匹配规则, 虽然这个规则是属于一个server:888端口下的配置,先删除再说,然后下面还看到一个Include 文件夹。去这个文件夹下查看,这个配置文件就是我们通过宝塔面板配置的网站参数配置,不需要再查看了。

删除上面那个location /, 再去添加反向代理,这次添加直接成功了。

Nginx文件已经存在全局反向代理问题排查记录

解决方案:

首先需要了解nginx.conf各个路径的配置文件,这个问题涉及到三个路径的配置文件。

第一个是网站的伪静态重写配置文件,在/www/server/panel/vhost/rewrite/ 路径的文件夹下。

第二个是网站本身的配置文件,在/www/server/panel/vhost/nginx/ 路径的文件夹下。

第三个最后一个是nginx.conf配置文件,这个一般都是在/www/server/nginx/conf/ 路径下,然后查看每个配置是否存在location / 匹配规则,有的话需要删除。

这次是因为nginx.conf文件下的server:888块存在一个location / 匹配规则,把红色部分删除掉就行了。

总结

到此这篇关于Nginx文件已经存在全局反向代理问题排查记录的文章就介绍到这了,更多相关Nginx全局反向代理排查内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!


Tags in this post...

Servers 相关文章推荐
Nginx进程管理和重载原理详解
Apr 22 Servers
windows下快速安装nginx并配置开机自启动的方法
May 11 Servers
nginx中proxy_pass各种用法详解
Nov 07 Servers
详解nginx location指令
Jan 18 Servers
使用kubeadm命令行工具创建kubernetes集群
Mar 31 Servers
OpenStack虚拟机快照和增量备份实现方法
Apr 04 Servers
CentOS下安装Jenkins的完整步骤
Apr 07 Servers
Vscode中SSH插件如何远程连接Linux
May 02 Servers
apache ftpserver搭建ftp服务器
May 20 Servers
nginx 添加http_stub_status_module模块
May 25 Servers
win sever 2022如何占用操作主机角色
Jun 25 Servers
Win10系统搭建ftp文件服务器详细教程
Aug 05 Servers
搭建zabbix监控以及邮件报警的超级详细教学
Jul 15 #Servers
nginx七层负载均衡配置详解
Jul 15 #Servers
Linux安装Docker详细教程
Jul 07 #Servers
Docker安装MySql8并远程访问的实现
Jul 07 #Servers
Docker部署Mysql8的实现步骤
Jul 07 #Servers
教你nginx跳转配置的四种方式
kubernetes集群搭建Zabbix监控平台的详细过程
You might like
Smarty安装配置方法
2008/04/10 PHP
WordPress中用于获取文章作者与分类信息的方法整理
2015/12/17 PHP
PHP模块化安装教程
2016/06/01 PHP
javascript YUI 读码日记之 YAHOO.util.Dom - Part.4
2008/03/22 Javascript
js弹出窗口之弹出层的小例子
2013/06/17 Javascript
javascript常用对话框小集
2013/09/13 Javascript
如何用jquery控制表格奇偶行及活动行颜色
2014/04/20 Javascript
JQuery+Ajax实现数据查询、排序和分页功能
2015/09/27 Javascript
jQuery simplePage+AJAX plus分页插件用法实例
2016/02/17 Javascript
js控件Kindeditor实现图片自动上传功能
2020/07/20 Javascript
JavaScript实现url参数转成json形式
2016/09/25 Javascript
javascript十六进制数字和ASCII字符之间的转换方法
2016/12/27 Javascript
原生JS轮播图插件
2017/02/09 Javascript
node.js 用socket实现聊天的示例代码
2017/10/17 Javascript
vue 自定义组件 v-model双向绑定、 父子组件同步通信的多种写法
2017/11/27 Javascript
基于javascript 显式转换与隐式转换(详解)
2017/12/15 Javascript
Node.js中的不安全跳转如何防御详解
2018/10/21 Javascript
详解Vue-cli3.X使用px2rem遇到的问题
2019/08/09 Javascript
javascript如何实现create方法
2019/11/04 Javascript
vue框架中props的typescript用法详解
2020/02/17 Javascript
[56:57]LGD vs VP 2019DOTA2国际邀请赛淘汰赛 胜者组赛BO3 第一场 8.20.mp4
2019/08/22 DOTA
python列表去重的二种方法
2014/02/14 Python
解决python 无法加载downsample模型的问题
2018/10/25 Python
python多任务之协程的使用详解
2019/08/26 Python
pytorch程序异常后删除占用的显存操作
2020/01/13 Python
使用Tkinter制作信息提示框
2020/02/18 Python
150行Python代码实现带界面的数独游戏
2020/04/04 Python
Python格式化输出--%s,%d,%f的代码解析
2020/04/29 Python
如何真正的了解python装饰器
2020/08/14 Python
PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)的步骤详解
2020/11/02 Python
PyTorch 中的傅里叶卷积实现示例
2020/12/11 Python
C#公司笔试题
2014/03/28 面试题
XMLHttpRequest对象在IE和Firefox中创建方式有没有不同
2016/03/23 面试题
外贸主管求职简历的自我评价
2013/10/23 职场文书
IDEA 2022 Translation 未知错误 翻译文档失败
2022/04/24 Java/Android
Java代码规范与质量检测插件SonarLint的使用
2022/08/05 Java/Android