当前位置: 首页 > news >正文

上海集团网站建设咨询肥西县建设局官方网站

上海集团网站建设咨询,肥西县建设局官方网站,网站建设服务商推荐,安庆网站建设专目录 案例 案例环境 案例步骤 部署Tomcat服务器 部署Nginx服务器 实现负载均衡和读写分离 日志控制 案例 案例环境 操作系统 IP 地址 角色 CentOS 192.168.10.101 Nginx服务器#xff08;调度器#xff09; CentOS 192.168.10.102 Tomcat服务器① CentOS 1…目录 案例 案例环境 案例步骤 部署Tomcat服务器 部署Nginx服务器 实现负载均衡和读写分离 日志控制 案例 案例环境 操作系统 IP 地址 角色 CentOS 192.168.10.101 Nginx服务器调度器 CentOS 192.168.10.102 Tomcat服务器① CentOS 192.168.10.103 Tomcat服务器② Windows虚拟机或宿主机 浏览器测试 需求静态请求交给Nginx解析动态请求交给2个Tomcat服务器实现动静分离和负载均衡 以及日志的控制 假如有DDOS等网络攻击服务器的连接数会被耗尽需要获取真实客户端的地址 DDOS分布式拒绝服务攻击 案例步骤 部署Tomcat服务器 因为102和103都是作为Tomcat服务器部署的大致步骤相同这里我们只开启102和103的会话同步 分别导入tomcat源码软件包到102和103主机 在102Tomcat服务器①操作 为了方便实验关闭防火墙和内核安全机制 tomcat是java开发的这里我们需要在系统上安装java确保开发环境一致 这里yum安装的java没有指定版本安装的java版本是1.8的可能仅适用于本次案例 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 [rootlocalhost ~]# yum -y install java tomcat是解压即用的不需要编译和安装。 移动到/usr/local/下方便使用 [rootlocalhost ~]# tar zxvf apache-tomcat-9.0.8.tar.gz [rootlocalhost ~]# mv apache-tomcat-9.0.8 /usr/local/tomcat9 在根目录下创建一个用来存放网页文件的目录 在该目录下添加动态内容和静态内容以达到更好的测试效果 [rootlocalhost webapps]# mkdir -p /web/webapp1 [rootlocalhost webapps]# cd /web/webapp1/ [rootlocalhost webapp1]# vim index.jsp % page languagejava importjava.util.* pageEncodingUTF-8% html headtitleJSP test1 page/title /headbody% out.println(动态页面 1,http://www.test1.com);%/bodybodydiv动态页面的图片 1/divbrimg srclogo.jpg/body /html 在103Tomcat服务器②操作 为了实现调度的效果暂时关闭会话同步来到103把其中的文本内容改一下 % page languagejava importjava.util.* pageEncodingUTF-8% html headtitleJSP test2 page/title /headbody% out.println(动态页面 2,http://www.test2.com);%/body body div动态页面的图片 2/divbrimg srclogo.jpg /body /html 在102Tomcat服务器①操作 开启会话同步 打开tomcat配置文件 在第150行Host单元中添加Context标签指定网页文件的位置 [rootlocalhost tomcat9]# vim /usr/local/tomcat9/conf/server.xml Context docBase/web/webapp1 path / 保存并退出启动tomcat [rootlocalhost ~]# /usr/local/tomcat9/bin/startup.sh 使用宿主机的浏览器测试访问两个Web服务器的IP端口号。结果如下动态和静态的内容都显示出来了 图像、音频、视频之类的资源我们交给Nginx去解析所以现在看不到图片是正常的 部署Nginx服务器 在101Nginx服务器操作 首先导入Nginx的源码软件包准备安装 为了方便实验关闭防火墙和内核安全机制 再安装Nginx依赖软件包创建程序用户 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 [rootlocalhost ~]# yum -y install pcre-devel zlib-devel gcc* [rootlocalhost ~]# useradd -M -s /sbin/nologin nginx 解压Nginx源码包进入解压目录运行configure脚本指定安装参数编译make、安装make install [rootlocalhost ~]# tar zxvf nginx-1.12.0.tar.gz [rootlocalhost ~]# cd nginx-1.12.0 [rootlocalhost nginx-1.12.0]# ./configure --prefix/usr/local/nginx --usernginx --groupnginx [rootlocalhost nginx-1.12.0]# make make install 优化调用命令的方式创建软链接到命令目录下然后使用nginx -t测试是否能正常调用命令 [rootlocalhost nginx-1.12.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ [rootlocalhost ~]# nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful cd进入Nginx存放网页文件的目录删除index.html文件中的内容替换为下方代码块的内容 [rootlocalhost ~]# cd /usr/local/nginx/html/ [rootlocalhost html]# vim index.html body h1静态页面/h1 /body 因为我们的网页有中文所以打开Nginx配置文件在第39行指定字符集为utf8然后保存并退出 [rootlocalhost ~]# vim /usr/local/nginx/conf/nginx.conf charset utf8; 启动nginx服务结果如下图 [rootlocalhost ~]# nginx 实现负载均衡和读写分离 刚才说了在这个案例的环境中图像等静态资源由Nginx负责解析那么相应的要实现动静分离 cd进入Nginx存放网页文件的目录在该目录下创建一个存放图片资源的子目录进入该目录把之前在tomcat指定的logo.jpg导入进该目录下 [rootlocalhost ~]# cd /usr/local/nginx/html/ [rootlocalhost html]# mkdir img [rootlocalhost html]# cd img/ 除此之外还需要修改配置文件来实现动静分离 返回上一级目录知道nginx根目录打开配置文件 [rootlocalhost img]# cd .. [rootlocalhost html]# cd .. [rootlocalhost nginx]# vim conf/nginx.conf 在第34行添加upstream单元来配置负载均衡 再往下隔一个location单元添加2个location单元实现读写分离看下图 下方代码表示nginx会将到达的请求按照权重分发到两台Tomcat服务器上权重值weight越高处理的请求越多 upstream mytomcat {server 192.168.10.102:8080;server 192.168.10.103:8080;}# 省略...location ~ .*\.jsp$ {proxy_set_header HOST $host;proxy_pass http://mytomcat;}location ~ .*\.(jpg|png|gif)$ {root /usr/local/nginx/html/img;expires 30d;} 参数 说明 proxy_set_header HOST $host; 把原http请求中的Header中的Host字段放到转发的请求报文里后端的web服务器利用这个host判断请求的是哪个虚拟主机 ~不区分大小写.*.\.jsp$nginx匹配所有以.jsp结尾的请求并将它们转发到定义的mytomcat后端服务器组中的某个Tomcat服务器处理。.*\.(jpg|png|gif)$这个配置用于处理静态图片文件。对于这些文件的请求nginx会直接从指定的目录中提供并设置响应头以便客户端进行缓存。expires 30d缓存时间为30天 由于修改了配置文件需要重启服务使其生效使用宿主机的浏览器访问192.168.10.101/index.jsp此时就可以解析图片了效果如下图 [rootlocalhost nginx]# nginx -s stop [rootlocalhost nginx]# nginx 日志控制 在102Tomcat服务器①操作 如果此时查看Tomcat的访问日志可以看到访问的IP都是代理服务器的IP 那么我们需要把这些源IP改为客户端的真实IP以便Tomcat的访问日志能够详细记录 [rootlocalhost ~]# tail /usr/local/tomcat9/logs/localhost_access_log.2024-08-08.txt 192.168.10.101 - - [08/Aug/2024:10:10:17 0800] GET /index.jsp HTTP/1.0 200 215 192.168.10.101 - - [08/Aug/2024:10:10:18 0800] GET /index.jsp HTTP/1.0 200 215 192.168.10.101 - - [08/Aug/2024:10:10:19 0800] GET /index.jsp HTTP/1.0 200 215 在101Nginx服务器操作 打开配置文件可以在location单元中设置对应参数来改变tomcat访问日志中的源IP location ~ .*\.jsp$ {proxy_set_header HOST $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header Client-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass http://myTomcat;} 参数 说明 proxy_set_header X-Real-IP $remote_addr; 使用$remote_addr变量获得用户的真实ip 如果有多个代理$remote_addr一般设置在第一个代理服务器上。 当一个请求通过多个代理服务器时用户的IP将会被代理服务器IP覆盖 proxy_set_header Client-IP $remote_addr; 获取客户端ip地址 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 从客户的真实ip为起点穿过多层代理的proxy 最终到达web服务器都会记录下来。 所以在获取用户真实ip的时候最后一个nginx配置此变量用来获取客户端的ip地址 适合多层代理的场景 在102、103Tomcat服务器①②操作 打开Tomcat配置文件 在第162行添加代理服务器定义的变量 [rootlocalhost ~]# vim /usr/local/tomcat9/conf/server.xml pattern%{X-Real-IP}i %h %l %u %t quot;%rquot; %s %b / i请求头 然后重启Tomcat服务 [rootlocalhost ~]# /usr/local/tomcat9/bin/shutdown.sh [rootlocalhost ~]# /usr/local/tomcat9/bin/startup.sh 然后查看访问日志就可以看到客户端的真实IP被加到开头了 [rootlocalhost ~]# tail /usr/local/tomcat9/logs/localhost_access_log.2024-08-08.txt 192.168.10.1 192.168.10.101 - - [08/Aug/2024:11:02:52 0800] GET /index.jsp HTTP/1.0 200 215 192.168.10.1 192.168.10.101 - - [08/Aug/2024:11:02:52 0800] GET /index.jsp HTTP/1.0 200 215 192.168.10.1 192.168.10.101 - - [08/Aug/2024:11:02:52 0800] GET /index.jsp HTTP/1.0 200 215
http://www.dnsts.com.cn/news/128314.html

相关文章:

  • 政务网站建设工作计划结尾企业网站建设目标
  • 广东专业网站建设公司网站改版应该怎么做
  • 母了猜猜看游戏做网站南昌市住房和城乡建设网站
  • 主机屋做淘宝客网站东圃做网站
  • 昆山网站建设犀牛大叔发广告平台有哪些
  • 网站检测报告哪里做购买营销型网站
  • 福州网站建?O网站登录注册怎么做
  • 网站由哪三部分构成wordpress 获取插件目录
  • 萝卜建站电商推广合同
  • 佛山网站建设慕枫网站制作 网页显示不全
  • 网站建设小组桂林市临桂区
  • 北仑建设局质监站网站哈尔滨学校网站建设
  • 企业网站建设费用入什么科目网络科技公司名称
  • 免费自适应网站模板免费网站是
  • 用什么网站推广制作网页的代码实例
  • 网站建设定制价格明细表wordpress 转载
  • 企业网站托管趋势ui网页界面设计
  • 做钢管的去什么网站发信息长沙企业网站建设分公司
  • 新建网站的外链多久生效世界杯数据分析
  • 乐清门户网站建设建筑培训网站
  • 东莞响应式网站哪里好世界大学排名
  • 文学网站模板下载网站建设炫彩图片
  • 网站开发 维护岗位职责新装wordpress慢的原因
  • 织梦网站404怎么做做网站work什
  • saas建站和开源建站的区别网站系统升级建设合同
  • 微信公众 wordpress哈尔滨seo建站
  • 剪辑素材网站免费互联网营销师培训教程
  • 专业网站建设案例兰州一刀切防疫曝光
  • 东莞seo网站排名文学网站建设
  • 巩义网络推广外包东莞百度seo价格