nginx的基本使用和反向代理,地址重写问题
admin
2023-03-08 13:02:40
0

nginx相关操作

 Windows下操作:
        1、启动:

        C:\server\nginx-1.14.2>start nginx
        或

        C:\server\nginx-1.14.2>nginx.exe

        注:建议使用第一种,第二种会使你的cmd窗口一直处于执行中,不能进行其他命令操作。

        2、停止:

        C:\server\nginx-1.14.2>nginx.exe -s stop``

        或

        C:\server\nginx-1.14.2>nginx.exe -s quit

        注:stop是快速停止nginx,可能并不保存相关信息;quit是完整有序的停止nginx,并保存相关信息。

        3、重新载入Nginx:

        C:\server\nginx-1.14.2>nginx.exe -s reload

        当配置信息修改,需要重新载入这些配置时使用此命令。

        4、重新打开日志文件:

        C:\server\nginx-1.14.2>nginx.exe -s reopen

        5、查看Nginx版本:

        C:\server\nginx-1.14.2>nginx -v

nginx反向代理路径问题

    http://abc.com:8080 写法和 http://abc.com:8080/ 写法的区别如下:

    不带/
    location /NginxTest/ {
                proxy_pass  http://abc.com:8080;
    }

    带/
    location /NginxTest/ {
                proxy_pass  http://abc.com:8080/;
    }
    上面两种配置,区别只在于proxy_pass转发的路径后是否带 “/”。
    针对情况1:
            (带参数)如果访问url =http://localhost:90/NginxTest/servlet/MyServlet?name=123333333,则被nginx代理后,请求路径便会访问http://abc.com:8080/NginxTest/servlet/MyServlet?name=123333333。
           (不带参数)如果访问url =http://localhost:90/NginxTest/servlet/MyServlet,则被nginx代理后,请求路径便会访问http://abc.com:8080/NginxTest/servlet/MyServlet。

    针对情况2:
              如果访问url = http://server/NginxTest/test.jsp,则被nginx代理后,请求路径会变为 http://proxy_pass/test.jsp,直接访问server的根资源。
              访问http://localhost:90/NginxTest/NginxTest/NginxTest/servlet/MyServlet,被nginx代理后,请求路径才会访问http://abc.com:8080/NginxTest/servlet/MyServlet。
    **注意:上面两种访问路径的差别。
    修改配置后重启nginx代理就成功了。**

nginx地址重写

    location /NginxTest/ {
        rewrite  ^/NginxTest/(.*)$  /$1  break;
        proxy_pass  http://abc.com:8080;
    }

    1. ^~/NginxTest/ 是一个匹配规则,用于拦截请求,匹配任何以 /NginxTest/ 开头的地址,匹配符合以后就停止往下搜索正则。
    2.rewrite  ^/NginxTest/(.*)$  /$1  break;
    代表重写拦截进来的请求,并且只能对域名后边的除去传递的参数外的字符串起作用,例如http://localhost:90/NginxTest/NginxTest/servlet/MyServlet?name=lovleovlove重写,只对/NginxTest/NginxTest/servlet/MyServlet重写。
    例如访问地址:http://localhost:90/NginxTest/NginxTest/servlet/MyServlet?name=lovleovlove,实际访问的地址(重写地址)为http://ita-1312-0059.synacast.local:8080/NginxTest/servlet/MyServlet?name=lovleovlove
    例如访问地址:http://localhost:90/NginxTest/NginxTest/servlet/MyServlet,实际访问的地址(重写地址)为http://ita-1312-0059.synacast.local:8080/NginxTest/servlet/MyServlet

    3.rewrite后面的参数是一个简单的正则^/NginxTest/(.*)$  /$1 ,$1代表正则中的第一个(),$2代表第二个()的值,以此类推。break代表匹配一个之后停止匹配。
    rewrite的语法:
    rewrite regex URL [flag];
    rewrite是关键字,regex是正则表达式,URL是要替代的内容,[flag]是标记位的意思,它有以下几种值:
    last: 相当于Apache的[L]标记,表示完成rewrite
    break: 停止执行当前虚拟主机的后续rewrite指令集
    redirect: 返回302临时重定向,地址栏会显示跳转后的地址
    permanent: 返回301永久重定向,地址栏会显示跳转后的地址

相关内容

热门资讯

特朗普的关键矿产战略能行吗? 5月7日,法国以G7轮值主席国身份召开线上高层会议,重点商讨在关键矿产领域对中国的遏制围堵政策。依托...
世卫组织:“洪迪厄斯”号邮轮疫... 世卫组织8日更新“洪迪厄斯”号邮轮疫情最新数据,截至5月8日,共报告8例病例,其中3例死亡病例。8例...
伊朗因储油罐已满而将石油排入海... 新华社德黑兰5月9日电 据伊朗塔斯尼姆通讯社9日凌晨报道,伊朗伊斯兰议会代表布什尔省的议员贾法尔·普...
金正恩向俄总统致贺电:平壤始终... 新华社平壤5月9日电(记者王天僚)据朝中社9日报道,朝鲜最高领导人金正恩当天向俄罗斯总统普京致贺电,...
美专家:伊朗扛不住了,或正向波... 据福克斯新闻5月8日报道,卫星图像显示,伊朗主要石油出口枢纽哈尔克岛附近出现大片疑似石油泄漏的浮油带...
黄土塬藏“算力密码”!中国电信... 在陇东黄土塬上,数字浪潮奔涌不息。作为国家 “东数西算” 工程的核心承载地,中国电信庆阳智算产业园正...
科沃斯加入清洁电器行业反虚假测... 【CNMO科技消息】5月8日,科沃斯官方微博宣布,科沃斯加入由中国家用电器协会指导、中国家电网发起成...
东华科技获得发明专利授权:“一... 证券之星消息,根据天眼查APP数据显示东华科技(002140)新获得一项发明专利授权,专利名为“一种...
头部企业扎堆超百场无人机赛事,... 文/陈聆听 2026 年 5 月 4 日,山东诸城,山东天鸟航空负责人丁总与当地多位中小学校长会面,...
重磅签约!华为、中国银联战略合... 快科技5月8日消息,华为和中国银联在深圳正式签约,进一步深化双方的战略合作,还一起发布了自主创新和人...