首先说说正向代理和反向代理的含义

正向代理:例如我们用的很多的VPN,就是我们访问某个网站或其他的地址时,并不暴露我们本身的请求地址信息,别人看到的只是VPN服务器的请求地址,用VPN可以很大程度上防止别人追踪到我们的IP,正向代理是隐藏用户自己

反向代理:主要用来做负载均衡等等,是隐藏服务器端的信息,例如我们访问www.baidu.com或者淘宝网站,但它的后台肯定有很多服务器很多IP,这里做了负载均衡的机制,我们访问baidu,实际是访问的其中的某一台服务器上的百度页面,每次请求很有可能都不一样,这样实现了分流,也隐藏自己本身的IP的作用,对于我们普通用户来说只知道自己在访问www.baidu.com

nginx反向代理:

去nginx官网下载最新的版本http://nginx.org/en/download.html,我这里是在windows上面实验,所以下载的是windows的zip,解压

进去nginx文件夹,打开conf下面的nginx.conf,在http{}里面加入

upstream nginxDemo {
server IP1:port; #服务器地址1
server IP2:port; #服务器地址2
}

这里IP前面就不要加http://了

将server的端口改成8080,在location /{}里面加入proxy_pass http://nginxDemo; 

这里就是用到上面配置的upstream的名称

server {
listen 8080;
server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;

location / {
root html;
index index.html index.htm;
proxy_pass http://nginxDemo; #配置方向代理地址
}

然后双击nginx.exe启动nginx,如果启动失败我们可以进入log文件夹下的error.log查看日志

访问localhost:8080,多刷新几次看下效果

FAQ:

1.上面做负载均衡的两个IP端口可以是不同项目,不同IP的,不过nginx对tomcat支持的比较好,用其他的项目也能访问可能js

css加载不太好,图片可能显示不出来,只有文字,甚至有可能页面都加载失败

2.nginx启动报错: bind() to 0.0.0.0:8080 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions)

这是8080端口冲突,你的8080端口已经被别的程序用了

3.nginx启动报错: CreateFile() "D:\down\google浏览器下载位置\nginx-1.11.13/conf/nginx.conf" failed (1113: No mapping for the Unicode character exists in the target multi-byte code page)

这是nginx的路径有中文,把nginx拷贝到一个全英文的路径再启动就可以了

posted on 2017-04-10 13:51  请叫我小路飞  阅读(625)  评论(1编辑  收藏  举报