Nginx配置反向代理

150 阅读1分钟

本文已参与[新人创作礼]活动,一起开启掘金创作之路

什么是反向代理

所谓代理,就是起到一个转发请求的作用

正向代理

image.png

  • 正向代理隐藏了真实客户端,而且请求从一开始它就很明确的知道自己要去访问哪台服务器

反向代理

image.png

  • 反向代理隐藏了真实服务端,所以请求一开始不清楚该往哪里转发的,需要根据配置去解析,然后再定位,转发。

为什么要使用反向代理?

反向代理分发请求可以平摊单个服务器的压力

Nginx反向代理的配置语法

反向代理中的常用指令:

proxy_pass 
proxy_set_header 
proxy_redirect

proxy_pass

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

proxy_set_header

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

下面这个例子指的是:访问web1.com的时候其实是会代理到proxy_pass中的 http://127.0.0.1:8280; 访问web2.com的时候会代理到http://127.0.0.1:8281;

server {
        listen       80; 
        server_name  web1.com;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location  / {
        proxy_pass   http://127.0.0.1:8280;
        index  index.html index.htm;
        }
    }
server {
        listen       80;
        server_name  web2.com;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location / {
        proxy_pass   http://127.0.0.1:8281;
        index  index.html index.htm;
        }
    }