-
[武汉|结业弟子]JAVA-谭道霄1
nginx可以进行正向、反向代理。
1.正向代理
拿借钱打个比方,A想向C借钱,但是C不认识A所以不借给他,然后A就通过B向C借钱,B借到钱之后再转交给A,在这个过程中B就扮演了一个正向代理的角色,这个过程中,真正借钱的人是谁,C是不知道的~
我们常说的代理也就是指正向代理,正向代理的过程,它隐藏了真实的请求客户端,服务端不知道真实的客户端是谁,客户端请求的服务都被代理服务器代替来请求,科学上网工具 Shadowsocks 扮演的就是典型的正向代理角色。
比如我想访问www.google.com,要想翻越这堵墙,你可以在国外用Shadowsocks来搭建一台代理服务器,代理帮我们请求www.google.com,代理再把请求响应结果再返回给我。
2.反向代理
还用借钱的例子,A想向C借钱,然后C借给他了,但是实际上这个钱可能C向B借的~至于钱到底是谁的,A是不知道的~
这里的C扮演着一个反向代理的角色,客户不知道真正提供服务的人是谁。
反向代理隐藏了真实的服务端,当我们访问www.baidu.com的时候,背后可能有成千上万台服务器为我们服务,但具体是哪一台,你不知道,也不需要知道,你只需要知道反向代理服务器是谁就好了。www.baidu.com就是我们的反向代理服务器,反向代理服务器会帮我们把请求转发到提供真实服务的服务器那里去。Nginx就是性能非常好的反向代理服务器,它可以用来做负载均衡。
负载均衡
第一种配置:加权轮询,按服务器的性能给予权重,本例是1:2分配
upstream lb {server 192.168.196.130 weight=1 fail_timeout=20s;
server 192.168.196.132 weight=2 fail_timeout=20s;
}第二种配置:ip_hash轮询方法,不可给服务器加权重
upstream lb {
server 192.168.196.130 fail_timeout=20s;
server 192.168.196.132 fail_timeout=20s;
ip_hash;
}air(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。upstream backserver {
server server1;
server server2;
fair;
}子域访问
server
{
listen 80;
server_name qq.com;
root /usr/share/nginx/html;
index index.php index.html index.htm;
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
}
}#先配置的是qq.com,相信我有配置这个的必要性,location里面的是为了让我们的Nginx服务器知道.php文件要去找php解释器执行,不配置可能会出现访问即下载文件的现象
#不要问我为什么,我是抄上面那个默认的server的,错不了,手动滑稽
server
{
listen 80;
server_name blog.qq.com;
root /usr/share/nginx/html/blog;
index index.php index.html index.htm;
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
}
}编辑于2018-05-16 -
[深圳|结业弟子]JAVA-韦杰0编辑于2018-03-22
- 去第 页