1.nginx简介:
Nginx是一款轻量级的Web服务器,也是一款轻量级的反向代理服务器。
官方测试 nginx 能够支撑5万并发链接,并且 cpu、内存等资源消耗却非常低,并发能力强,运行非常稳定。
2.Nginx能干什么:(很多)
1.直接支持Rails和PHP的程序
2.作为HTTP反向代理服务器
3.作为负载均衡服务器
4.作为邮件代理服务器
5.帮助实现前端动静分离
3.Nginx安装
http://www.runoob.com/linux/nginx-install-setup.html
4.Nginx的基本运行
测试配置文件:
安装路径下的/usr/local/webserver/nginx/sbin/nginx -t
启动:
安装路径下的/usr/local/webserver/nginx/sbin/nginx
停止:
安装路径下的/usr/local/webserver/nginx/sbin/nginx -s stop
或者 nginx -s quit
重启:
安装路径下的/usr/local/webserver/nginx/sbin/nginx -s reload
安装后,如果外面访问不了
/sbin/service iptables stop
5.Nginx Http反向代理
Nginx通常用来作为后端服务器的反向代理,这样快就很方便的实现动静分离以及负载均衡,从而大大提高服务器的处理能力
Nginx正向代理与反向代理的区别:
两者的区别在于代理的对象不一样:正向代理代理的对象是客户端,反向代理代理的对象是服务端
Nginx启动时默认加载配置文件/etc/nginx/nginx.conf,而nginx.conf里会引用/etc/nginx/conf.d目录里的所有.conf文件。
因此可以将自己定制的一些配置写到单独.conf文件里,只要文件放在/etc/nginx/conf.d这个目录里即可,方便维护。
创建tomcats.conf:vi /etc/nginx/conf.d/tomcats.conf
7.Nginx负载均衡特点
轮询(默认):
实现简单,但是不考虑每台服务器处理能力
upstream www.happymall.com{
server www.happymall.com:8080;
server www.happymall.com:9080;
}
权重:(使用的最多)
考虑了每台服务器处理能力的不同
upstream www.happymall.com{
server www.happymall.com:8080 weight=15;
server www.happymall.com:9080 weight=10;
}
8080端口访问的概率是9080的1.5倍
ip hash:
能实现同一个用户访问同一个服务器,但是ip hash不一定平均
upstream www.happymall.com{
ip_hash;
server www.happymall.com:8080;
server www.happymall.com:9080;
}
url hash(第三方,需要安装插件)
能实现同一个服务访问同一个服务器,
但是根据 url hash分配请求会不平均,请求频繁的url会请求到同一个服务器上
upstream www.happymall.com{
server www.happymall.com:8080;
server www.happymall.com:9080;
hash $request_uri;
}
fair (第三方,需要安装插件)
按后端服务器的相应时间类分配请求,相应时间短的优先分配
upstream www.happymall.com{
server www.happymall.com:8080;
server www.happymall.com:9080;
fair;
}
8.负载均衡参数扩展
upstream www.happymall.com{
ip_hash;
server 127.0.0.1:8080 down; (down表示当前server暂时不参与负载)
server 127.0.0.1:9080 weight=2;(weight默认为1,weight越大,负载的权重就越大)
server 127.0.0.1:6080;
server 127.0.0.1:7080 bakcup;(其他所有的非backup机器down或者忙的时候,请求backup机器,相当于是备用机器)
}
9.Nginx+Tomcat搭建集群
1.启动两个tomcat
2.修改系统的host(浏览器所在机器的host)
3.编辑在${nginx}/conf/nginx.conf配置文件,在htttp节点里面增加
include vhost/*.conf;
4.在${nginx}/conf目录下创建文件夹vhost
5.重启ngnix: ./nginx -s reload
10Tomcat集群作用:
提高服务的性能、并发能力,以及高可用性
提供项目架构的横向扩展能力
11.实现:通过Nginx负载均衡进行请求转发
12.Tomcat单机部署多应用(linux/mac)
1.修改/etc/profile 增加tomcat环境变量 (/opt/tomcat-cluster/tomcat1,/opt/tomcat-cluster/tomcat2是安装位置)
export CATALINA_BASE=/opt/tomcat-cluster/tomcat1
export CATALINA_HOME=/opt/tomcat-cluster/tomcat1
export TOMCAT_HOME=/opt/tomcat-cluster/tomcat1
export CATALINA_2_BASE=/opt/tomcat-cluster/tomcat2
export CATALINA_2_HOME=/opt/tomcat-cluster/tomcat2
export TOMCAT_2_HOME=/opt/tomcat-cluster/tomcat2
2.第一个tomcat不变
打开第二个tomcat目录下bin下的catalina.sh
即${tomcat}/bin/catalina.sh 找到 #OS specific support. $var _must_be setto either true or false
在这行下面编辑,新增配置 保存退出
export CATALINA_BASE=$CATALINA_2_BASE
export CATALINA_HOME=$CATALINA_2_HOME
3.打开第二个tomcat的conf目录下server.xml
即${tomcat}/conf/server.xml,修改三个端口
3.1 Server Port="8005"节点端口号修改 ->9005
3.2 Connector Port="8080"节点端口号修改 ->9080
3.2 Connector port="8009" protocol="8009"节点端口号修改 ->9009
注意端口号不要重复
4.分别进入bin目录启动,启动tomcat,查看日志
5.如果想部署多个tomcat实例,请依照此法
// 修改端口对外访问
vi /etc/sysconfig/iptables
增加:-A INPUT -m state --state NEW -m tcp -p tcp --dport 9080 -j ACCEPT