什么是Nginx
Nginx是一个高性能的 HTTP和反向代理服务器,也是一个 IMAP/POP3/SMTP 服务器;
官方测试nginx能够支支撑5万并发链接
应用场景:
-
http服务器,可以做静态网页的http服务器。
-
配置虚拟机。
一个域名可以被多个ip绑定。可以根据域名的不同把请求转发给运行在不同端口的服务器。
-
反向代理,负载均衡。把请求转发给不同的服务器。
windows配置nginx+tomcat集群
-
一台电脑模拟两个tomcat,分别命名为tomcat1,tomcat2
-
修改tomcat的配置文件,不能使用同一个端口;
-
配置tomcat2的端口,修改三个地方,都加1;
server.xml
[外链图片转存失败(img-GPxLqfJp-1563110859604)(C:\Users\Tang\AppData\Roaming\Typora\typora-user-images\1562675163876.png)]
-
-
创建test web项目
-
创建一个index.jsp,内容中显示为sessionID,项目打包后分别放到tomcat1和tomcat2的webapps中
<body> tomcat1<hr> <%=session.getId()%> </body>
测试:
localhost:8080/test
localhost:8081/test
-
-
安装window版本的nginx(如果电脑有VisualSVN,会产生端口冲突)
启动不了的原因:解压路径中含有中文路径
-
配置nginx/conf/nginx.conf文件
[外链图片转存失败(img-NwVrr5kq-1563110859607)(C:\Users\Tang\AppData\Roaming\Typora\typora-user-images\1562677352397.png)]
通过浏览器访问http://localhost/test,会自动切换访问网站所属的tomcat(分流机制)
[外链图片转存失败(img-joj2G40m-1563110859609)(C:\Users\Tang\AppData\Roaming\Typora\typora-user-images\1562677657827.png)]
- Tomcat集群的session共享
问题:同一个浏览器访问不同的tomcat所用的session不同,需要让两个tomcat共用同一个session;
- 一种使用tomcat广播机制完成session的共享(不推荐的方式)
- 一种使用redis服务器的方式完成session的共享(推荐的方式)
使用tomcat广播机制完成session的共享
-
修改两个tomcat中的server.xml:把Cluster的注释打开;
-
在项目的web.xml中添加一个配置
[外链图片转存失败(img-1HCeirwT-1563110859612)(C:\Users\Tang\AppData\Roaming\Typora\typora-user-images\1562678383998.png)]
Linux配置nginx集群
-
在Linux上安装多个Tomcat
- 解压tomcat
tar –xvf xxx.tar.gz –C /usr/local/tomcat cp -r tomcat/ tomcat2 将tomcat复制tomcat2文件夹
- 修改tomcat2中的server.xml
1.修改3个端口号,防止与第一个tomcat冲突(进入到conf文件夹中找到server.xml) vim server.xml 2.将修改后的端口添加到防火墙中 /sbin/iptables -I INPUT -p tcp --dport 8081 -j ACCEPT /etc/rc.d/init.d/iptables save 3.进入bin文件夹中启动tomcat cd ../bin ./startup.sh
-
安装nginx
环境需求
安装gcc: yum install gcc-c++ pcre yum install -y pcre pcre-devel zlib yum install -y zlib zlib-devel openssl yum install -y openssl openssl-devel
编译及安装
- 把nginx的源码包上传至linux服务器
- 解压源码包
mkdir -p /var/temp/nginx tar -zxf nginx-1.8.0.tar.gz -C /var/temp/nginx
3.进入nginx-1.8.0文件夹。使用configure命令创建makefile
cd nginx-1.8.0/ ./configure
-
make
-
make install
-
启动
在nginx目录下有一个sbin目录,sbin目录下有一个nginx可执行程序
cd /usr/local/nginx/sbin/ niginx
- 配置防火墙设置80端口
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT /etc/rc.d/init.d/iptables save
- 配置nginx/conf/nginx.conf文件
[外链图片转存失败(img-BfhJxuYU-1563110859614)(C:\Users\Tang\AppData\Roaming\Typora\typora-user-images\1562677352397.png)]
-
动态加载配置文件
进入到/usr/local/nginx/sbin文件夹中
./nginx -s reload 重新加载配置启动nginx
-
关闭nginx
关闭 ./nginx -s stop 退出 ./nginx -s quit