本文已参与[新人创作礼]活动,一起开启掘金创作之路
什么是反向代理
所谓代理,就是起到一个转发请求的作用
正向代理
- 正向代理隐藏了真实客户端,而且请求从一开始它就很明确的知道自己要去访问哪台服务器
反向代理
- 反向代理隐藏了真实服务端,所以请求一开始不清楚该往哪里转发的,需要根据配置去解析,然后再定位,转发。
为什么要使用反向代理?
反向代理分发请求可以平摊单个服务器的压力
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;
}
}