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服务器添加Systemd自定义服务过程解析
Mar 31 Servers
Nginx解决403 forbidden的完整步骤
Apr 01 Servers
Nginx Rewrite使用场景及配置方法解析
Apr 01 Servers
Nginx工作原理和优化总结。
Apr 02 Servers
Apache Calcite 实现方言转换的代码
Apr 24 Servers
Linux中Nginx的防盗链和优化的实现代码
Jun 20 Servers
Windows server 2012 配置Telnet以及用法详解
Apr 28 Servers
Windows Server 2019 域控制器安装图文教程
Apr 28 Servers
解决Git推送错误non-fast-forward的方法
Jun 25 Servers
Nginx报错104:Connection reset by peer问题的解决及分析
Jul 23 Servers
apache虚拟主机配置的三种方式(小结)
Jul 23 Servers
SpringBoot前端后端分离之Nginx服务器下载安装过程
Aug 14 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
使用VisualStudio开发php的图文设置方法
2010/08/21 PHP
php中echo()和print()、require()和include()等易混淆函数的区别
2012/02/22 PHP
PHP提示Notice: Undefined variable的解决办法
2012/11/24 PHP
浅析PHP绘图技术
2013/07/03 PHP
浅析php原型模式
2014/11/25 PHP
phpStorm+XDebug+chrome 配置详解
2019/04/01 PHP
JavaScript对象、属性、事件手册集合方便查询
2010/07/04 Javascript
JQuery1.4+ Ajax IE8 内存泄漏问题
2010/10/15 Javascript
实用的Jquery选项卡TAB示例代码
2013/08/28 Javascript
js实现下拉框选择要显示图片的方法
2015/02/16 Javascript
AngularJS入门教程之过滤器详解
2016/08/19 Javascript
vue组件父与子通信详解(一)
2017/11/07 Javascript
使用Vue.js和Element-UI做一个简单登录页面的实例
2018/02/23 Javascript
JavaScript获取用户所在城市及地理位置
2018/04/21 Javascript
详解vue.js根据不同环境(正式、测试)打包到不同目录
2018/07/13 Javascript
layui从数据库中获取复选框的值并默认选中方法
2018/08/15 Javascript
微信小程序实现两边小中间大的轮播效果的示例代码
2018/12/07 Javascript
浅析VUE防抖与节流
2020/11/24 Vue.js
[08:40]Navi Vs Newbee
2018/06/07 DOTA
python中xrange用法分析
2015/04/15 Python
Python闭包函数定义与用法分析
2018/07/20 Python
PYQT5设置textEdit自动滚屏的方法
2019/06/14 Python
python爬虫实现中英翻译词典
2019/06/25 Python
如何使用 Python 读取文件和照片的创建日期
2020/09/05 Python
windows系统Tensorflow2.x简单安装记录(图文)
2021/01/18 Python
英国和世界各地鲜花速递专家:Arena Flowers
2018/02/10 全球购物
经典C++面试题一
2016/11/06 面试题
什么是虚拟内存?虚拟内存有什么优势?
2012/02/19 面试题
英语专业毕业生自荐信范文
2013/12/31 职场文书
军训感想500字
2014/02/20 职场文书
计算机软件专业求职信
2014/06/10 职场文书
2015年大学学生会工作总结
2015/05/13 职场文书
撤诉状格式范本
2015/05/19 职场文书
Python虚拟环境virtualenv是如何使用的
2021/06/20 Python
使用canvas对video视频某一刻截图功能
2021/09/25 HTML / CSS
用JS创建一个录屏功能
2021/11/11 Javascript