** 反向代理服务器_Nginx [web基础day26] *

版权声明:文章为作者自己原创文章,转载请注明出处。 https://blog.csdn.net/qq_37128049/article/details/85273391

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 英文

猜你喜欢

转载自blog.csdn.net/qq_37128049/article/details/85273391