Nginx:
Nginx在服务器中主要是扮演一个反向代理和负载均衡以及web缓存。
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。
反向代理主要是在Nginx的配置文件内,通过对server对请求端口的配置,指定location的proxy_pass,到具体的upstream,到指定的服务器(tomcat)。
upstream tomcatserver1 {
server 192.168.3.43:8080;
}
upstream tomcatserver2 {
server 192.168.3.43:8082;
}
server {
listen 80;
server_name 8080.zcinfo.com; #(为客户端访问服务器的路径url)
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://tomcatserver1;
index index.html index.htm;
}
}
server {
listen 80;
server_name 8082.zcinfo.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://tomcatserver2;
index index.html index.htm;
}
}
负载均衡则是在具体的server下配置之后,在location分发到upstream时,upstream配置多个服务器路径(ip+port),通过具体的选择策略来决定由具体的哪个服务器来执行。
upstream tomcatserver1 {
server 192.168.3.43:8080 weight=2;
server 192.168.3.43:8082 weight=1;
}
upstream tomcatserver2 {
server 192.168.3.43:8082;
}
server {
listen 80;
server_name 8080.zcinfo.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://tomcatserver1;
index index.html index.htm;
}
}
server {
listen 80;
server_name 8082.zcinfo.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://tomcatserver2;
index index.html index.htm;
}
}
分布式的实现,同样的是在server的location中配置,首先配置具体的location的路由,然后在proxy_pass配置具体的指向的upstream的服务器位置。
upstream tomcatserver1 {
server 192.168.3.43:8080;
}
upstream tomcatserver2 {
server 192.168.3.43:8082;
}
server {
listen 80;
server_name 8080.zcinfo.com;
#(客户端访问服务器的路径url+location)
#charset koi8-r;
#access_log logs/host.access.log main;
location /t1 {
proxy_pass http://tomcatserver1;
index index.html index.htm;
}
}
server {
listen 80;
server_name 8080.zcinfo.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location /t2 {
proxy_pass http://tomcatserver2;
index index.html index.htm;
}
}