徐员外#Nginx的主要作用及用法

Nginx的主要作用有两个,一是“反向代理”,二是“负载均衡”。

一台tomcat的请求并发大约能支撑到500,而一台 Nginx的请求并发大约可以支撑到50000

在理解反向代理前,我们先理解一下正向代理,比如我们在公司里有N台电脑,要想访问外网,大家都可以通过同一台代理服务器授权 进行上网。

方向代理:如果外面的N个用户访问网站的域名,此时网站被分布安装在各个服务上,那么通过配置代理,反向指向不同的服务器。

像大型网站存在大量的图片,文件等,如果这些东西都装在应用服务器下,则会让应用服务器的性能压力很大,如果此时能够将这些资源文件独立出来,指向不同服务器,则性能会提升很多。

今天我在虚拟机上装了三台tomcat应用,一个nginx 服务器。配置如下

#user nobody;

worker_processes 1;

#error_log logs/error.log;

#error_log logs/error.log notice;

#error_log logs/error.log info;

#pid logs/nginx.pid;

events {

worker_connections 1024;

}

http {

include mime.types;

default_type application/octet-stream;

#log_format main '$remote_addr - $remote_user [$time_local] "$request" '

# '$status $body_bytes_sent "$http_referer" '

# '"$http_user_agent" "$http_x_forwarded_for"';

#access_log logs/access.log main;

sendfile on;

#tcp_nopush on;

#keepalive_timeout 0;

keepalive_timeout 65;

#gzip on;

server {

listen 80;

#charset koi8-r;

location / {

root htmltz1;

index index.html index.htm;

}

}

server {

listen 80;

#charset koi8-r;

location / {

root htmltz2;

index index.html index.htm;

}

}

server {

listen 80;

#charset koi8-r;

location / {

root htmltz3;

index index.html index.htm;

}

}

#配置反向代理

upstream tengzhuo{

server 192.168.1.106:8080;

}

server {

listen 80;

#charset koi8-r;

location / {

#root htmltz1;

#将请求转发到 upstream tengzhuo

proxy_pass http://tengzhuo;

index index.html index.htm;

}

}

#tomcat 服务器 端口号为8081

#实现应用服务器集群,提供同样的服务,负载均衡 可以通过weight=数字 ,设置权重

upstream tengzhen{

server 192.168.1.106:8081;

server 192.168.1.106:8082;

}

server {

listen 80;

#charset koi8-r;

location / {

#root htmltz1;

#将请求转发到 upstream tengzhen

proxy_pass http://tengzhen;

index index.html index.htm;

}

}

}

nginx作为负载均衡器,所有请求都到了nginx,可见nginx处于非常重点的位置,如果nginx服务器宕机后端web服务将无法提供服务,影响严重。

为了屏蔽负载均衡服务器的宕机,需要建立一个备份机。主服务器和备份机上都运行高可用(High Availability)监控程序,通过传送诸如“I am alive”这样的信息来监控对方的运行状况。当备份机不能在一定的时间内收到这样的信息时,它就接管主服务器的服务IP并继续提供负载均衡服务;当备份管理器又从主管理器收到“I am alive”这样的信息时,它就释放服务IP地址,这样的主服务器就开始再次提供负载均衡服务。keepalive+nginx可以做到。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180419G14QAZ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券