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

目录
  • 项目场景:
  • 问题描述
  • 原因分析:
  • 解决方案:
  • 总结

项目场景:

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

问题描述

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

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

原因分析:

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

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

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 重写的规则配置文件。

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

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

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

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

查看这个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.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全局反向代理排查内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • nginx 作为反向代理实现负载均衡的例子

    nginx 这个轻量级.高性能的 web server 主要可以干两件事情: 〉直接作为http server(代替apache,对PHP需要FastCGI处理器支持): 〉另外一个功能就是作为反向代理服务器实现负载均衡 以下我们就来举例说明如何使用 nginx 实现负载均衡.因为nginx在处理并发方面的优势,现在这个应用非常常见.当然了Apache的 mod_proxy和mod_cache结合使用也可以实现对多台app server的反向代理和负载均衡,但是在并发处理方面apache还是没有

  • Nginx 反向代理并缓存及缓存清除的方法

    本文介绍了Nginx 反向代理并缓存及缓存清除的方法,分享给大家,具体如下: 一. Nginx 配置 #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { log_form

  • nginx学习总结五(nginx反向代理)

    Nginx代理与负载均衡配置与优化 Nginx代理 Nginx从0.7.48版本开始,支持了类似Squid的缓存功能.Nginx的Web缓存服务主要由proxy_cache相关指令集和fastcgi_cache相关指令集构成,前者用于反向代理时,对后端内容源服务器进行缓存,后者主要用于对FastCGI的动态程序进行缓存.两者的功能基本上一样. Nginx 0.8.32版本,proxy_cache和fastcgi_cache已经比较完善,加上第三方的ngx_cache_purge模块(用于清除指定

  • Nginx服务器的反向代理proxy_pass配置方法讲解

    就普通的反向代理来讲 Nginx的配置还是比较简单的,如: location ~ /* { proxy_pass http://127.0.0.1:8008; } 或者可以 location / { proxy_pass http://127.0.0.1:8008; } Apache2的反向代理的配置是: ProxyPass /ysz/ http://localhost:8080/ 然而,如果要配置一个相对复杂的反向代理 Nginx相对Apache2就要麻烦一些了 比如,将url中以/wap/开

  • 详解nginx反向代理配置及优化

    前言: 由于服务器apache抗不住目前的并发.加上前端squid配置后,问题依然无法解决.而页面程序大部分是动态.无法使用fastcgi来处理.因此想使用nginx做为反向代理apache.整个配置安装过程很简单.在考虑高并发的情况下,在安装前就做了些优化.目前配置能抗住3000以上并发.好像不是特别大哦?呵~~ 但足以~~ 只是还有少量499问题..期待有人跟我讨论解决 第1部分:安装 1 建立用户及组 /usr/sbin/groupadd www /usr/sbin/useradd -g

  • Nginx实现静态资源的反向代理实例

    github 中很多项目都有一个 readme 文件,很多人喜欢在文件中添加自己的创作或封面图片,比如 substack 为他的每个项目绘制了一个 logo.这些图片在 github 中能直接在页面中显示出来,不过 url 被替换成了 github 自己的.比如在 browserify 项目中,logo 的链接变成了 复制代码 代码如下: https://camo.githubusercontent.com/e19e230a9371a44a2eeb484b83ff4fcf8c824cf7/687

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

    目录 项目场景: 问题描述 原因分析: 解决方案: 总结 项目场景: 阿里云搭建的宝塔Linux面板,上面已经搭建过其它网站了,我现在给一个新增的网站增加一个反向代理端口,但是通过宝塔面板添加反向代理的时候,出现了下图伪静态的错误. 问题描述 伪静态/nxinx主配置/vhost/文件已经存在全局反向代理 这个问题是其实是告诉我们nginx配置文件里面一个网站只能包含一个location /,不然就会产生报错了. 原因分析: 问题已经非常清楚了,就是nginx.conf的相关配置出现问题. 第一

  • Windows下用Nginx配置https服务器及反向代理的问题

    请求逻辑 前端 --> https方式请求nginx nginx --> 通过http请求后端服务 安装OpenSSL 下载地址 然后配置环境变量.在系统环境变量中添加环境变量: 变量名:OPENSSL_HOME 变量值:F:\OpenSSL-Win64\bin; (变量值为OPENSSL安装位置下的bin目录) 生成证书 用命令行随便打开一个目录, 使用如下命令生成证书 # 创建私钥 # test文件名是自己随便起即可, 这个命令会让你设置两次rsa的密码, 请务必记住该密码, 后续需要使用

  • Nginx七层及四层反向代理配置的全过程

    目录 部署测试http服务 nginx反向代理http服务 nginx通过https反向代理http服务 NginxStream模块负载均衡测试 准备测试用https服务 nginxstream安装配置 负载均衡策略 默认采用轮询算法 一致性hash算法测试 附:负载均衡四层和七层的区别 总结 本文旨在测试 nginx对 http服务 https 服务 的代理方式. 部署测试 http服务 准备测试服务程序 gintest 并启动如下 [root@localhost ~]# sudo nohup

  • Nginx为Tomcat服务器作反向代理的配置教程

    web上的server都叫web server,但是大家分工也有不同的. nginx常用做静态内容服务和代理服务器(不是你FQ那个代理),直面外来请求转发给后面的应用服务(tomcat,django什么的),tomcat更多用来做做一个应用容器,让java web app跑在里面的东西,对应同级别的有jboss,jetty等东西. 但是事无绝对,nginx也可以通过模块开发来提供应用功能,tomcat也可以直接提供http服务,通常用在内网和不需要流控等小型服务的场景. apache用的越来越少

  • 详解Nginx HTTP负载均衡和反向代理配置

    当前大并发的网站基本都采用了Nginx来做代理服务器,并且做缓存,来扛住大并发.先前也用nginx配置过简单的代理,今天有时间把整合过程拿出来和大家分享,不过其中大部分也是网上找来的资源. nginx完整的反向代理代码如下所示  : [root@data conf]# vim nginx.conf user www www; worker_processes 10; error_log /var/log/nginx/nginx_error.log; pid logs/nginx.pid; wor

  • 在Nginx服务器中配置mod_proxy反向代理的方法

    反向代理做法可以为网站安全做更高一步,像一些银行肯定是使用了反代理就是你进入代理服务器也得不到任何数据,下面我来介绍nginx用mod_proxy实现反向代理配置方法. 由于项目需要实现一个域名代理的功能 比如: 复制代码 代码如下: a.com/a.html=>b.com/b.html 也就是用a.com代理了所用b.com网站的请求,经过朋友介绍用apache的反向代理可以实现其目的,哥们试了一下,果然很爽.配置起来也超级的方便. (注意下面只介绍反向代理,正向代理等我用到了再介绍嘿嘿) 1

  • 在Nginx服务器上配置Google反向代理的基本方法

    长期以来谷歌在TC一直被间歇性干扰,直至今日已经被完全屏蔽,给我们的学习和工作造成极大不便.以下为反代谷歌的教程,共有两种方式. 一.直接反向代理,使用的是7ghost源码搭建,优点是简单容易上手,缺点是容易被屏蔽,不能搜索敏感词. 二.使用SSL加密反向代理,优点是安全.不易被屏蔽,缺点是技术性相对较强,需要折腾的地方也多. 现在主要简单说下第二种方法的设置过程. Step1:你得需要有一台Linux的海外VPS. Step2:Nginx环境的建立(为了方便,教程中就用AMH一键包进行环境构建

  • Nginx服务器做负载均衡反向代理的超级攻略

    nginx 做反向代理时,后端主机有多台,可以使用 upstream 定义一个后端主机池,在反向代理时直接使用主机池的名字.在 upstream 中可以定义负载均衡调度算法,权重,健康状态检测等参数. 例如: upstream backend { server 172.16.0.1:80 weight=1 max-fails=3 fail_timeout=10; server 172.16.0.2:80 weight=1max-fails=3 fail_timeout=10;; } 默认请求下,

  • Nginx应用之Location路由反向代理及重写策略示例

    一.常用设置 1、日志格式 log_format main '$time_iso8601|$remote_addr|$remote_user|$request_method|$uri|' '$status|$request_time|$request_length|$body_bytes_sent|$bytes_sent|' '$connection|$http_x_forwarded_for|$upstream_addr|$upstream_status|' '$upstream_respon

随机推荐