一.什么是nginx
nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定,
所以现在很多知名的公司都在使用nginx。
二.nginx应用场景
1、http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。
2、虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。
3、反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。
三.indows环境下安装nginx
1)下载地址:
2)启动
解压至c:\nginx,运行nginx.exe(即nginx -c conf\nginx.conf),默认使用80端口,日志见文件夹C:\nginx\logs
3)使用
输入地址:http://localhost 看到这个界面启动成功。
4)关闭
进入到nginx安装目录,nginx -s stop 或taskkill /F /IM nginx.exe > nul
四.使用nginx实现反向代理
通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中由代理服务器向Internet上的web服务器发起请求,最终达到客户机上网的目的。
而反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
案例:使用nginx实现nginx 同一端口根据不同域名转发到不同端口
Host文件C:\Windows\System32\drivers\etc
输入8080.i-ronge.com 跳转到 127.0.0.1:8080
输入8081.i-ronge.com 跳转到 127.0.0.1:8081
如下图:
五.nginx优缺点
① 占内存小,可以实现高并发连接、处理响应快。
② 可以实现http服务器、虚拟主机、反向代理、负载均衡。
③ nginx配置简单
④ 可以不暴露真实服务器IP地址
六.什么是负载均衡
负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。
七.Windows环境下搭建nginx+tomcat负载均衡
nginx负载均衡服务器:127.0.0.1
tomcat1服务器:127.0.0.1:8080
tomcat2服务器:127.0.0.1:8082
真实环境中nginx、tomcat服务器是分开的。
1.3 在host文件中添加本地域名
127.0.0.1 www.i-ronge.com
1.4 配置nginx的负载均衡
#Nginx是如何实现负载均衡的,Nginx的upstream目前支持以下几种方式的分配
#1、轮询(默认)
#每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
#2、weight
#指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
#2、ip_hash
#每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
#3、fair(第三方)
#按后端服务器的响应时间来分配请求,响应时间短的优先分配。
#4、url_hash(第三方)
#按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
#ip_hash;
upstream tomcatserver1{ server 127.0.0.1:8080; server 127.0.0.1:8082;} upstream tomcatserver2{ server 127.0.0.1:8081; } server { listen 80; server_name www.i-ronge.com; #charset koi8-r; #access_ log logs/host.access.log main; location /{ proxy_pass http:tomcatserverl; index index.html index.htm; } } proxy_pass http:tomcatserverl; index index.html index.htm; 1.5 配置负载均衡的权重 使用weight配置负载均衡,weight默认为1,权重越高,处理请求越多。 节点说明: 在http节点里添加: #定义负载均衡设备的 Ip及设备状态 upstream myServer { server 127.0.0.1:9090 down; server 127.0.0.1:8080 weight=2; server 127.0.0.1:6060; server 127.0.0.1:7070 backup; } 在需要使用负载的Server节点下添加 proxy_pass http://myServer; upstream 每个设备的状态: down 表示单前的server暂时不参与负载 weight 默认为1.weight越大,负载的权重就越大。 max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误 fail_timeout:max_fails 次失败后,暂停的时间。 backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。