微服务系列文章之 Nginx反向代理

Nginx反向代理模块的指令是由ngx_http_proxy_module模块进行解析,该模块在安装Nginx的时候已经自己加装到Nginx中了,接下来我们把反向代理中的常用指令一一介绍下:

复制代码
proxy_pass
proxy_set_header
proxy_redirect

1、proxy_pass

该指令用来设置被代理服务器地址,可以是主机名称、IP地址加端口号形式。

语法 proxy_pass URL;
默认值 ---
位置 location

URL:为要设置的被代理服务器地址,包含传输协议(http,https://)、主机名称或IP地址加端口号、URI等要素。

2、proxy_set_header

该指令可以更改Nginx服务器接收到的客户端请求的请求头信息,然后将新的请求头发送给代理的服务器

语法 proxy_set_header field value;
默认值 proxy_set_header Host $proxy_host; proxy_set_header Connection close;
位置 http、server、location

需要注意的是,如果想要看到结果,必须在被代理的服务器上来获取添加的头信息。

被代理服务器: 192.168.200.146

复制代码
server {
        listen  8080;
        server_name localhost;
        default_type text/plain;
        return 200 $http_username;
}

代理服务器: 192.168.200.133

复制代码
server {
    listen  8080;
    server_name localhost;

    location /server {
        proxy_pass http://192.168.200.146:8080/;
        proxy_set_header username TOM;
    }
}

访问测试

3、proxy_redirect

该指令是用来重置头信息中的"Location"和"Refresh"的值。

语法 proxy_redirect redirect replacement; proxy_redirect default; proxy_redirect off;
默认值 proxy_redirect default;
位置 http、server、location

》为什么要用该指令?

服务端192.168.200.146

复制代码
server {
    listen  8081;
    server_name localhost;
    if (!-f $request_filename){
      return 302 http://192.168.200.146;
    }
}

代理服务端192.168.200.133

复制代码
server {
  listen  8081;
  server_name localhost;
  location / {
    proxy_pass http://192.168.200.146:8081/;
    proxy_redirect http://192.168.200.146 http://192.168.200.133;
  }
}

》该指令的几组选项

proxy_redirect redirect replacement;

复制代码
redirect:目标,Location的值
replacement:要替换的值

proxy_redirect default;

复制代码
default;
将location块的uri变量作为replacement,
将proxy_pass变量作为redirect进行替换

proxy_redirect off;

复制代码
关闭proxy_redirect的功能
相关推荐
Decay__15 小时前
18_MySQL 智能巡检方案 —— 巡检项清单 / 一键巡检脚本 / 健康评分
运维·数据库·sql·mysql·架构
天远API19 小时前
零信任架构实战:基于天远运营商三要素详版V即时版构建自动化消费电子大促电商平台高价值权益秒杀与优惠券防羊毛高并发实名核验网关
运维·人工智能·架构·自动化
这个DBA有点耶20 小时前
信创场景下数据同步软件怎么选?对比开源CDC与原生闭环工具的结构性差异
数据库·mysql·架构
衡石科技1 天前
衡石高性能分析架构:HQL、查询下推与多层加速的协同设计
架构·数据分析
Lsetea1 天前
Docker更新SSL证书后容器仍读旧文件:单文件挂载与目录挂载排查
运维·nginx·docker·https·ssl证书
Tokenfree1 天前
换模型也要灰度:10% → 50% → 100%,每一档只看三个指标
架构
vivo互联网技术1 天前
把 Agent 的判断与行动变成可恢复的软件事实|KDC 系列 工程篇
架构·agent·ai编程
用户094248568031 天前
第19章:库存扣减与秒杀系统:Redis 扛峰值流量
redis·架构·源码
leo在掘金1 天前
2.8万亿MoE跑昇腾:0 Day适配改了啥
后端·架构
广凌科技1 天前
广凌校园物联网中台整体解决方案:三层架构驱动校园数字化智治
物联网·架构