Nginx

1、反向代理

1.1 nginx 配置 proxy_pass时可以实现URL路径的部分替换

  • 1.proxy_pass的目标地址,默认不带/,表示只代理域名,url和querystring部分不会变(把请求的path拼接到proxy_pass目标域名之后作为代理的URL)
  • 2.如果在目标地址后增加/,则表示把path中location匹配成功的部分剪切掉之后再拼接到proxy_pass目标地址

例子:请求 /abc/b.html

server {
       location  /abc {
                proxy_pass http://server_url; #代理地址:http://server_url/abc/b.html
       }
       location  /abc {
                proxy_pass http://server_url/; #代理地址:http://server_url/b.html
        }
 }

1.2 nginx替换响应中的内容

server{
  listen 80;
  server_name www.test.com;
  location / {
         #下面5行内容也可以写在http, server里,作用域不一样
        sub_filter '首页' '测试一把';  #把  首页  替换成  测试一把
        sub_filter 'href="/' 'href="/bbb/ccc/';  #同理
        sub_filter 'src="/' 'src="/bbb/ccc/';  #同理
        sub_filter_once off;
        sub_filter_types text/html;  #指定需要被替换的MIME类型,默认为“text/html”,如果制定为*,那么所有类型的文件
        proxy_set_header Accept-Encoding '';  #防止返回gzip压缩无法替换

        proxy_pass http://127.0.0.1:8080/;
    }
}

1.3 转发真实的客户端请求信息

server{
  listen 80;
  server_name www.test.cn;
  location / {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_pass http://127.0.0.1:8080/;
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。