• nginx根据路径配置反向代理


      今天,测试 一个后台接口,写了个html,在其中使用jquery发送请求给后台,chrome91竟然报错说跨域给error了!那岂不是以后本机页面不能和后端愉快的玩耍了?

      于是,配置起了nginx+反向代理的方式,旨在迂回对抗chrome的新安全机制。

    目标地址:http://127.0.0.1:8006/publish/template/modifyInterPublish

    配置如下:

     1 server {
     2     listen       80;
     3     server_name  localhost;
     4 
     5     location / {
     6         root   html;
     7         index  index.html index.htm;
     8         if ($request_filename ~* ^.*?.(txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx|jar|war)$) {
     9             add_header Content-Disposition 'attachment'; 
    10         }
    11     }
    12 
    13     location /proxy {
    14         proxy_pass http://127.0.0.1:8006;
    15         index index.html;
    16     }
    17     
    18 }

    结果:怎么也访问不到!

    原来只差一个“/”!

    即:

    1 location /proxy {
    2     proxy_pass http://127.0.0.1:8006;
    3     index index.html;
    4 }

    改为:

    1 location /proxy {
    2     proxy_pass http://127.0.0.1:8006/;
    3     index index.html;
    4 }

    原来proxy_pass匹配路径后加杠代理后将去掉已匹配的路径,不加杠则保留已匹配的路径。

    请求网址:http://127.0.0.1:8006/publish/template/modifyInterPublish

    使用 proxy_pass http://127.0.0.1:8006; 代理后的网址为:http://127.0.0.1:8006/proxy/publish/template/modifyInterPublish

    使用 proxy_pass http://127.0.0.1:8006/; 代理后的网址为:http://127.0.0.1:8006/publish/template/modifyInterPublish

    而location匹配的路径后有没有杠无所谓,即

    location /proxy  和 location /proxy/  匹配的结果没有区别。

    最后再上正确的配置:

     1 server {
     2     listen       80;
     3     server_name  localhost;
     4 
     5     location / {
     6         root   html;
     7         index  index.html index.htm;
     8         if ($request_filename ~* ^.*?.(txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx|jar|war)$) {
     9             add_header Content-Disposition 'attachment'; 
    10         }
    11     }
    12 
    13     location /proxy {
    14         proxy_pass http://127.0.0.1:8006/;
    15         index index.html;
    16     }
    17     
    18 }
  • 相关阅读:
    CSS3学习笔记
    ie6对hover兼容性问题的解决:
    Maven-- 操作指南
    java基础 -- json多层转换成对象
    idea 导入maven项目
    工具的使用与安装--JAVA 环境变量的配置
    FreeMarker语言
    Apache Shiro 安全框架
    java基础--内部类
    java框架--Model层框架 sorm
  • 原文地址:https://www.cnblogs.com/guanghe/p/14954236.html
Copyright © 2020-2023  润新知