Nginx如何正向代理-代理上网

1. 引言

nginx不仅可以来做反向代理,也可以用来做正向代理(透明代理,代理上网),

这里可以浏览nginx反向代理

2. 反向代理

外部机器通过网关访问网关后面服务器上的内容,网关起到了反向代理的功能,我们平时通过浏览器访问远程的web服务器大都是这样实现的。

3. 正向代理

就是上面的过程反过来,我们平时说的上网代理,局域网中的用户通过网关做代理访问外部的网络。

4. 正向代理与反向代理对比解析

它俩都有三个共同的角色:

请求者 代理者 实际目标

如本地开发时遇到跨域问题,我们做代理转发 :

/api/items =>http://localhost:3000/api/items(转发)=> http://localhost:7777/api/items


这种转发,称之为正向代理 => 请求者&代理者在同一个域(被服务端) 目标在另一个服务器(服务端

请求者通常是浏览器

代理者http://localhost:3000

实际目标 http://localhost:7777


反向代理

请求者是一个域(被服务端代理&目标是另外一组(服务端

实际本地开发大部分都属于正向代理,如果代码编译完后丢到服务器上,这个时候必然涉及跨域,假如前端代码通过server1访问,而后端代码通过server2访问,浏览器和它们是分开的,这个时候就是反向代理模式了。

通常开发的时候,浏览器也与代理者同在一台服务器上,一般开发都正向代理,而发布后,浏览器就不在一起了,就是反向代理了。

5. Nginx代理上网

nginx同样可以实现代理上网的功能,配置如下:

user www;
worker_processes 1;
error_log /var/log/nginx/error.log debug;

events {
    
    
	use epoll;
	worker_connections 1024;
}

http {
    
    
	resolver 8.8.8.8;
	server {
    
    
		listen 8088;
		location / {
    
    
			proxy_pass http://$http_host$request_uri;
		}
	}
}

nginx实现代理上网,有三个关键点必须注意,其余的配置跟普通的nginx一样
1.增加dns解析resolver

2.增加无server_name名的server

3.proxy_pass指令

6. 实现步骤

1、把如下配置填到你的配置文件http作用域

    resolver 8.8.8.8;
	server {
    
    
		listen 8088;
		location / {
    
    
			proxy_pass http://$http_host$request_uri;
		}
	}

2、重启nginx使配置文件生效

nginx -s reload

3、设置ie代理
在这里插入图片描述

4、可以使用代理上网了

可以访问http://ip.quancha.cn检测代理是否生效
使用nginx代理上网后

在这里插入图片描述

使用nginx代理上网前

在这里插入图片描述



(后续待补充)

猜你喜欢

转载自blog.csdn.net/u013946061/article/details/107739532