• 转发内容替换(不支持长链接内容替换)
# 关闭gzip
gunzip on;
gzip_disable ".";

# 转发内容全局替换
proxy_redirect off; 
sub_filter_once     off; # off为多次替换,默认值为on仅仅替换一次
sub_filter_types *; # 替换的content-type类型
sub_filter "hometree-ts.oss-cn-shanghai.aliyuncs.com" "hometree-ts.oss-accelerate.aliyuncs.com";
sub_filter "oss-ts.jiayuanshu.net" "hometree-ts.oss-accelerate.aliyuncs.com";

sub_filter "hometree.oss-cn-shanghai.aliyuncs.com" "hometree.oss-accelerate.aliyuncs.com";
sub_filter "oss.jiayuanshu.net" "hometree.oss-accelerate.aliyuncs.com";
sub_filter "hometree.oss.jiayuanshu.net" "hometree.oss-accelerate.aliyuncs.com";


sub_filter 指令
sub_filter string replacement。将string替换成replacement,不区分大小写。
sub_filter_last_modified on | off。默认:off,防止缓存。是否在Response header中写入Last-Modified,控制缓存。
sub_filter_once on | off。默认: on,只执行一次。sub_filter指令是执行一次,还是重复执行。
sub_filter_types mime-type …。默认: text/html。指定类型的MINE TYPE,如果所有类型,则使用:*。
  • 自动转发且自动帮助登录
location /online_api1/ {
    proxy_set_header Authorization 'Bearer eyJ0eXJ9.eyJpc3MiiA';
    proxy_pass https://api.test.cn/; 
}
  • 微服务2种配置方式
 # 访问 /*/aaa 实际请求 http://localhost:9501/aaa
location /abcd/ {
            proxy_pass http://localhost:9501/;
}
location ~ /abcd(/|$)(.*) { 
    proxy_pass http://localhost:9501/$2;
}

# 访问 /*/aaa 实际请求 http://localhost:9501/aaa 
location ~ /[a-z_0-9]+(/|$)(.*) { # 为列出来的都转发到该接口 
    if ($query_string = ''){
        proxy_pass http://t.wuloves.com/$2;
    }
    proxy_pass http://t.wuloves.com/$2?$query_string;
}
  • location 携带参数
location ^~ /abc {
    proxy_set_header    Host $host;
    proxy_set_header    X-Real-IP  $remote_addr;
    proxy_pass http://127.0.0.1:8081/;
}
  • 路径转发
location /callback/ {
    proxy_pass http://www.baidu.com/;
}
# 网上有人说https协议不能访问, 测试实际访问是http, 配置中转发到https转发正常, 同样实际测试转发的域名是无法将域名替代为ip通过https访问的
# 当前被访问的为https未测试
location /https/ {
    proxy_pass https://www.baidu.com/;
}

# 重点,转发websocket需要的设置
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
# proxy_set_header Connection $connection upgrade;

标签: nginx, location

添加新评论