nginx 正向代理、反向代理和负载均衡

一:介绍

关于什么是正向代理、反向代理,网上概念一大把,这里用比较通俗的语言描述下。

1:正向代理

内网服务器A访问不了外网,但可以访问B服务器,而B服务器可以访问外网;那么就可以在B服务器上配置代理,使内网服务器A通过B服务器访问外网。流程:A——》B(代理)——》外网。

一般用于企业访问外网,比如公司穷、或者出于保密,你们开发这般人电脑不能直接连接外网;或者访问海那边的网站。

2:反向代理

外网要访问内网A,但是A服务器不在公网之中,直接访问不了,但是B服务器在公网之中,且B服务器可以访问内网A,那么在B服务器上配置一个代理,使得所有外网请求通过B服务器访问A。流程:外网——》B(代理)——》A

一般用于网站架构

二:正向代理

1:nginx配置

配置很简单,增加一个server,几个简单的配置撸进去即可,其他还有一些配置,但不是必须的

 

server {
	resolver 8.8.8.8; #dns解析resolver
	listen 8088; #代理端口
	location / {
		proxy_pass $scheme://$host$request_uri; #代理指令
	}
}

设置完后,重启nginx,如果有防火墙,记得开启8088端口号

 

2:测试

谷歌浏览器,设置——高级设置——打开代理设置

nginx 正向代理、反向代理和负载均衡_第1张图片

nginx 正向代理、反向代理和负载均衡_第2张图片

nginx 正向代理、反向代理和负载均衡_第3张图片

用伟大的PHP输出一下访问IP,这里输出的正是代理服务器的IP,说明配置正确。

再访问一下百度,靠,访问不了,什么原因?原来百度是https,据说nginx正向代理不支持https,需要巧妙转一下,这里不搞了,有知道的请告诉我。

另外正向代理还是推荐 Squid,这货专门干这个事的,点击:centos7配置Squid

三:反向代理

1:配置

nginx配置通过proxy_pass,我在192.168.0.25上配置

 

server
{
    listen  8090;
    location / {
        proxy_pass        http://192.168.0.23;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    }
}

上面的意思是,访问http://192.168.0.25:8090/ nginx 把http://192.168.0.23页面给取出来。

nginx 正向代理、反向代理和负载均衡_第4张图片

访问成功!

 

proxy_pass配置很多,其他配置建议查看一下手册

点击查看全部

你可能感兴趣的:(nginx 正向代理、反向代理和负载均衡)