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


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

    1. proxy_pass
    2. proxy_set_header
    3. 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]

    1. server {
    2. listen 8080;
    3. server_name localhost;
    4. default_type text/plain;
    5. return 200 $http_username;
    6. }

    代理服务器: [192.168.200.133]

    1. server {
    2. listen 8080;
    3. server_name localhost;
    4. location /server {
    5. proxy_pass http://192.168.200.146:8080/;
    6. proxy_set_header username TOM;
    7. }
    8. }

    访问测试

    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]

    1. server {
    2. listen 8081;
    3. server_name localhost;
    4. if (!-f $request_filename){
    5. return 302 http://192.168.200.146;
    6. }
    7. }

    代理服务端[192.168.200.133]

    1. server {
    2. listen 8081;
    3. server_name localhost;
    4. location / {
    5. proxy_pass http://192.168.200.146:8081/;
    6. proxy_redirect http://192.168.200.146 http://192.168.200.133;
    7. }
    8. }

    》该指令的几组选项

    proxy_redirect redirect replacement;

    1. redirect:目标,Location的值
    2. replacement:要替换的值

    proxy_redirect default;

    1. default;
    2. location块的uri变量作为replacement,
    3. 将proxy_pass变量作为redirect进行替换

    proxy_redirect off;

    关闭proxy_redirect的功能
  • 相关阅读:
    数据中台与业务中台是什么关系?
    基于springboot的在线电子商城系统设计与实现
    开发模式-敏捷开发
    iMeta框架使用方法
    利用通信基础设施提高电网的稳态稳定性(Matlab代码实现)
    【LeetCode-13】罗马数字转整数
    【牛客刷题】反转固定区间链表、每k个节点一组反转
    token_to_image
    vue 改变路由(URL)参数不刷新页面
    【C++入门】烦人的引用
  • 原文地址:https://blog.csdn.net/Coder_Boy_/article/details/131752650