Nginx
阿里云服务器
1.ip地址
* 电脑的ip地址连接不同的网络ip地址是不断变化的
* 阿里云服务器给的公网ip地址是不变的。
* 阿里云中使用的是公网ip地址,内的ip地址是区域网的地址。
* 公网的ip地址不容易记住,可以指定一个域名绑定ip。
2.远程工具
* Xshell6 可以远程控制服务器
* FileZila 可以远程传输到服务器软件
3.其他操作
* 虚拟机操作系统:CentOs
* 购买域名 绑定域名 通过域名连接服务器
* 发布的过程中会有很多问题,如
* tomcat安全问题(需要删除重新放入文件)
* redies需要安装
* 版本不兼容
* 等
代理服务器
* 查看服务器:
* 首先输入网址后,会先在hosts中查询是否有对应的ip地址,如果有的话直接返回,如果没有,再从公网上进行查询解析。
* hosts路径:C:/Windows/System32/drivers/etc/hosts
* 系统权限不足的同学,可以使用此代码解决hosts修改不生效的问题:
* ipconfig /flushdns
* 网站(域名)--> 找到对应ip地址对应的web服务器 -->找到web服务器的资源。
* .com .cn 顶级域名 这种域名比较贵
* 解析设计: 主机记录与记录值进行匹配
Nginx
1.概述
* Nginx,它是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。是由俄罗斯访问量第二的Rambler.ru站点开发的,发布于2004年10月4日。
2.优点:
* 稳定
* 功能集丰富
* 示例配置文件
* 低系统资源的消耗
3.代理问题
* 正向代理:
* 如果想上网,可以通过一个代理服务器连上网络,这样就会经过一个代理服务器,这种就属于正向代理。 (机器找网络)
* 反向代理
* 网络上有一个请求过来,但是现在有很多服务器,它不知道找哪个服务器。这时候就有一个代理服务器,它会拦截请求并分析,告诉请求找哪个服务器,这就称之为反向代理。 (网络找机器)
* 使用反向代理软件可以解决服务器集群问题。
4.windows中部署Nginx和tomcat集群:
1. 安装步骤:
* 复制出两个tomcat出来,分别命名为tomcat1和tomcat2
* 修改tomcat端口,修改其中一个tomcat的Servlet.xml文件(防止端口冲突):
* Server port " xxx"
* Connnector prot(启动端口)=" xxx" Protocol="HTTP"
* Connector prot " xxx" Protocol="AJP/"
* 将两个一样的项目分别都发布到两个tomcat的项目中 (将项目打包为war包分别放入两个tomcat中的webapps里)
2. Nginx:
* 它们不可能有两个不同的地址,所以需要安装一个Nginx,设置一个统一的入口。
* 步骤:
1.双击nginux.exe 如果想看一下是否成功运行和结束,可以点开任务管理器即可查看。
2.nginux的端口是80,默认省略,直接输入localhost即可进入Nginx的欢迎界面(http://locathost)
3. 配置Nginx:
1. 进入Nginx文件中,修改nginx/conf/nginx.conf文件:
* 创建一个集合: //设置服务器列表
* upstream server_lb{
* server localhost:8080;
* server localhost:8081;
* }
*在server中添加代码:
* server{ //如果有域名直接设置域名,如果没有可以直接设置proxy pass即可
* listen 80;
* server_name localhost;
* location / {
* root html;
* proxy pss http://server lb; //代理
* index index.jsp index.html index.htm;
* } }
2.做到这一步,就可以使tomcat的集群搭建完成了。
4. Session的共享问题
* 解决方案:
1. 一种解决办法:一个用户进来以后只在tomcat1上进行操作,另一个用户进行只在tomcat2上进行;
* 修改nginx/conf/nginx.conf文件,在upstream server_lb{}中末尾添加代码:ip_hash;
* 设置权重 如:
* server localhost:8080 wight=4;
* server localhost:8081 wight=10;
* //这个修改也是在server_lb中修改代码。
2. 广播机制:
* 概念:一种使用tomcat广播机制完成session的共享(不推荐的方式)
* 缺点:当集群中tomcat很多的时候,它们之间需要相互联系,需要知道彼此的关系和位置,会导致效率下降。
* 配置:看下方尾部。
3. redis缓存机制(工作中常用):
* 概念:可以使用redis进行缓存,将它们中的共享数据都保存到redis服务器中。取的时候都从redis取出数据。
4. 使用1方法可以让不同的tomcat来分担服务器的压力,请求负载过程中会话信息不能丢失,那么需要在多个tomcat中session需要共享。
* 配置tomcat的session共享可以有三种解决方案:
1. 第一种是以负载均衡服务器本身的session共享策略,没中服务器的配置是不一样的并且nginx本身是没有的。
2. 第二种是利用web容器本身的session共享策略来配置共享。针对于weblogic这种方式还是靠谱的。但是针对于tomcat这种方式存在很大的缺陷,主要因为是依靠广播方式来实现的session赋值,会浪费很多带宽导致整个网络反应缓慢。官网也建议这种方式最好不要超过4台tomcat,具体的内容可参考/webapps/docs/cluster-howto.html里面有详细的说明。
3. 第三种是tomcat集群+redis的Session共享配置方法。
5. 广播机制的seesion共享搭建方法:
1. 步骤一:修改server.xml文件,最简单的集群配置只需要将节点中注释掉的下面这句取消注释即可:
* XML代码:
* <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
2. 步骤二:修改项目的web.xml文件:
* web.xml文件的修改很简单:只需要在节点中添加这个节点<distributable/>就可以了。
OK,有了这二步就实现了Tomcat的集群和Session的共享了。
安全网站:
* www.freebuf.com 技术,科普性内容
* www.exploit-db.com 英文