linux问题

nginx反向代理

2018-07-10  本文已影响4人  陆_志东

反向代理的优点

1.能够隐藏真正服务器的ip和port,对于用于来说,用户只知道nginx服务器的ip和port
2.能够进行负载均衡,还有业务分离,把不同的业务分到不同的服务器上面,让各个服务器处理相对应的业务
这样的好处就是,负载均衡能够分担相同功能的服务器压力.业务分离能够保证就算另外的业务服务器崩溃了,也不会影响其他的业务

nginx反向代理的配置

第一步.

在你的nginx.conf配置下的http模块 加载你的反向代理的文件 backend.conf 文件
为什么要加载backend.conf文件,因为一般反向代理,代理的地址过多,如果都写到nginx.conf下不美观,所以写到外面的文件里面再导入进来,这和flask和django把工具类和配置文件分离出去是一样的道理

http{
    include backend.conf;   #记得加分号
}

backend.conf文件内容如下:

upstream aaa{
    server 127.0.0.1:5000 max_fails=3;
    keepalive 100;
}

upstream bbb{
    server 127.0.0.1:5001 max_fails=3;
    keepalive 100;
}
upstream ccc{ # upstream 后面的 aaa,bbb,ccc 代表反向代理匹配规则,proxy_pass 后面的路由进行替换的时候就是根据aaa,bbbccc替换的
    server 127.0.0.1:5003;   # 当有两个server的时候,如果server1挂了,就会去访问server2,相当于替补,server1和server2具有相同的功能.
    server 127.0.0.1:5002 backup;
    keepalive 50;
}

第二步

在http下的server模块下导入你的路由匹配跳转文件 server.conf
server模块结构

http{
    server{
          include server.conf;   
    }
}

server.conf配置如下

location = /test1 {    # 当nginx服务器接收到http://nginx_ip:nginx_port/test1 访问的时候 执行下面的逻辑
    internal;
    proxy_set_header Accept-Encoding "";
    proxy_set_header Host "es.qixin.com";
    proxy_set_header Connection "";
    proxy_http_version 1.1;
    proxy_connect_timeout 100;
    proxy_send_timeout 100;
    proxy_read_timeout 100;
    proxy_pass http://aaa/hello/;  # 反向代理到 aaa所对应的server上面的hello接口上面
        # 配合上面的upstream 替换后的路径就是 http://127.0.0.1:5000/hello/    这里我上面设置的是本地,生产环境下是你公司的另外一台服务器的ip和端口
}
上一篇下一篇

猜你喜欢

热点阅读