Web应用服务器Tomcat

打印 上一主题 下一主题

主题 1115|帖子 1115|积分 3345

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
一、tomcat

        Tomcat是Java语言开发的,Tomcat服务器是一个免费的开放源代码的Web应用服务器,是Apache软件基金会的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。Tomcat属于轻量级应用服务器,在中小型体系和并发访问用户不是很多的场所下被广泛使用,是开发和调试JSP程序的首选。一般来说,Tomcat虽然和Apache或者Nginx这些Web服务器一样,具有处理HTML页面的功能,然而由于其处理静态HTML的能力远不及Apache或者Nginx,以是Tomcat通常是作为一个Servlet和JSP容器,单独运行在后端。



   同步     交互式网页,用户提交了请求,就是想看到查询的效果。服务器相应到来后是一个全新的页面内容,哪怕URL  稳定,整个网页都必要重新渲染。例如,用户填写注册信息,只是  2  次密码不划一,提交后,整个注册页面重新刷新,所有填写项目重新填写(  当然有办法让用户淘汰重填  )  。这种交互非常不友好。从代价的角度看,就是为了注册的一点点信息,效果返回了整个网页内容,不但浪费了网络带宽,还必要欣赏器重新渲染网页,太浪费资源了,影响了用户体验和感受。上面这些请求的过程,就是同步过程,用户发起请求,页面整个刷新,直到服务器端相应的数据到来并重新渲染。    异步       传统的网页如果必要更新内容,必需重载整个网页面。   Ajax   的出现,改变这一切,同时极大的促进了Javascript的发展。   Ajax   即   "Asynchronous Javascript And XML"   (异步    JavaScript    和    XML   ),是指一种创建交互式、快速动态网页应用的网页开发技能,最早劈头于1998   年微软的   Outlook Web Access   开发团队。Ajax    通过在后台与服务器举行少量数据交换, 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部门举行更新。Javascript    通过调用欣赏器内置的   WEB API   中的XMLHttpRequest 对象实现   Ajax    技能。早期   Ajax   结合数据格式   XML   ,现在更多的使用   JSON   。使用   AJAX   可实现前后端开发的彻底分离,改变了传统的开发模式。       安装

  1.安装jdk
  1. [root@tomcat-node1 ~]# yum install -y java-1.8.0-openjdk.x86_64
复制代码
2.解压tomcat
  1. [root@tomcat-node1 ~]# tar -zxvf apache-tomcat-9.0.93.tar.gz -C /usr/local/
复制代码
3.设置软连接
  1. [root@tomcat-node1]# cd /usr/local
  2. [root@tomcat-node1 local]# ln -s apache-tomcat-9.0.93 tomcat
复制代码
4.开启tomcat
  1. [root@tomcat-node1 ~]# /usr/local/tomcat/bin/startup.sh
复制代码
5.天生tomcat主设置文件
  1. [root@tomcat-node1 ~]# vim /usr/local/tomcat/conf/tomcat.conf
  2. JAVA_HOME=/etc/alternatives/jre_openjdk
复制代码
6.创建用户
  1. [root@tomcat-node1 ~]# useradd -s /sbin/nologin -M tomcat
复制代码
7.天生启动文件
  1. # 修改权限
  2. [root@tomcat-node1 ~]# chown -R tomcat.tomcat /usr/local/tomcat/
  3. [root@tomcat-node1 ~]# vim /lib/systemd/system/tomcat.service
  4. [Unit]
  5. Description=Tomcat
  6. #After=syslog.target network.target remote-fs.target nss-lookup.target
  7. After=syslog.target network.target
  8. [Service]
  9. Type=forking
  10. EnvironmentFile=/usr/local/tomcat/conf/tomcat.conf
  11. ExecStart=/usr/local/tomcat/bin/startup.sh
  12. ExecStop=/usr/local/tomcat/bin/shutdown.sh
  13. PrivateTmp=true
  14. User=tomcat
  15. Group=tomcat
  16. [Install]
  17. WantedBy=multi-user.target
  18. [root@tomcat-node1 ~]# systemctl daemon-reload
复制代码
8.重启tomcat
  1. [root@tomcat-node1 ~]# systemctl restart tomcat
复制代码
 另一台主机同上
  1. [root@tomcat-node2 ~]# yum install -y java-1.8.0-openjdk.x86_64
  2. [root@tomcat-node2 ~]# tar -zxvf apache-tomcat-9.0.93.tar.gz -C /usr/local/
  3. [root@tomcat-node2 ~]# vim /usr/local/tomcat/conf/tomcat.conf
  4. JAVA_HOME=/etc/alternatives/jre_openjdk
  5. [root@tomcat-node2 ~]# useradd -s /sbin/nologin -M tomcat
  6. [root@tomcat-node2 ~]# vim /usr/local/tomcat/conf/tomcat.conf
  7. JAVA_HOME=/etc/alternatives/jre_openjdk
  8. # 修改权限
  9. [root@tomcat-node2 ~]# chown -R tomcat.tomcat /usr/local/tomcat/
  10. [root@tomcat-node2 ~]# vim /lib/systemd/system/tomcat.service
  11. [Unit]
  12. Description=Tomcat
  13. #After=syslog.target network.target remote-fs.target nss-lookup.target
  14. After=syslog.target network.target
  15. [Service]
  16. Type=forking
  17. EnvironmentFile=/usr/local/tomcat/conf/tomcat.conf
  18. ExecStart=/usr/local/tomcat/bin/startup.sh
  19. ExecStop=/usr/local/tomcat/bin/shutdown.sh
  20. PrivateTmp=true
  21. User=tomcat
  22. Group=tomcat
  23. [Install]
  24. WantedBy=multi-user.target
  25. [root@tomcat-node2 ~]# systemctl daemon-reload
  26. [root@tomcat-node2 ~]# systemctl restart tomcat
复制代码

二、反向代理实现Tomcat

2.1 常见摆设方式


预备一台安装好nignx的服务器
2.2 Nginx反向代理


反向代理单台web服务器
  1. [root@nginx-node1 ~]# vim /usr/local/nginx/conf.d/vhost.conf
  2. server {
  3.     listen *:80;
  4.     server_name www.lm.org;
  5.     root /data/wb/html;
  6.     index index.html;
  7.     location ~ \.jsp$ {
  8.         proxy_pass http://172.25.254.10:8080;
  9.     }
  10. }
  11. [root@nginx-node1 ~]# systemctl restart nginx
复制代码

2.3 负载均衡

1.ip_hash
  1. [root@nginx-node1 ~]# vim /usr/local/nginx/conf.d/vhost.conf
  2. upstream tomcat {
  3.     ip_hash;
  4.     #hash $cookie_JSESSIONID;
  5.     server 172.25.254.10:8080;
  6.     server 172.25.254.20:8080;
  7. }
  8. server {
  9.     listen *:80;
  10.     server_name www.lm.org;
  11.     root /data/wb/html;
  12.     index index.html;
  13.     location ~ \.jsp$ {
  14.         proxy_pass http://tomcat;
  15.     }
  16. }
  17. [root@nginx-node1 ~]# systemctl restart nginx
复制代码


源地点哈希,后端服务器不会改变 
2.cookie哈希
  1. [root@nginx-node1 ~]# vim /usr/local/nginx/conf.d/vhost.conf
  2. upstream tomcat {
  3.     #ip_hash;
  4.     hash $cookie_JSESSIONID;
  5.     server 172.25.254.10:8080;
  6.     server 172.25.254.20:8080;
  7. }
  8. server {
  9.     listen *:80;
  10.     server_name www.lm.org;
  11.     root /data/wb/html;
  12.     index index.html;
  13.     location ~ \.jsp$ {
  14.         proxy_pass http://tomcat;
  15.     }
  16. }
  17. [root@nginx-node1 ~]# systemctl restart nginx
复制代码
三、session 共享服务器


msm
   msm  (  memcached session manager  )提供将  Tomcat  的  session  保持到  memcached  可以实现高可用。项目早期托管在google code,  现在在  Github github网站链接  :   https://github.com/magro/memcached-session-manager     摆设:  1.解压
  1. [root@tomcat-node1 ~]# tar -zxvf apache-tomcat-9.0.93.tar.gz -C /usr/local/
复制代码
2.复制
  1. [root@tomcat-node1 ~]# cp test.jsp /usr/local/tomcat/webapps/
  2. [root@tomcat-node1 ~]# scp test.jsp root@172.25.254.20:/usr/local/tomcat/webapps/
  3. root@172.25.254.20's password:
  4. test.jsp                                                         100%  968   409.9KB/s   00:00  
复制代码
3. 修改tomcat
172.25.254.10
  1. [root@tomcat-node2 ~]# vim /usr/local/tomcat/conf/context.xml    <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"      memcachedNodes="m1:172.25.254.10:11211,m2:172.25.254.20:11211"      failoverNodes="m1"      requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"      transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"    />[root@tomcat-node1 ~]# systemctl restart tomcat
  2. .service
复制代码

172.25.254.20
  1. [root@tomcat-node2 ~]# vim /usr/local/tomcat/conf/context.xml
  2. <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
  3.       memcachedNodes="m1:172.25.254.10:11211,m2:172.25.254.20:11211"
  4.       failoverNodes="m2"
  5.       requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
  6.       transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
  7.     />
  8. [root@tomcat-node2 ~]# systemctl restart tomcat.service
复制代码

4.下载
  1. [root@tomcat-node2 ~]# yum install -y memcached
复制代码
 

  1. [root@tomcat-node1 ~]# yum install -y memcached
复制代码

测试
   1.  在两台  tomcat  都开启的情况下:     2.  在  n1  被停止后继续提交信息看是否可以读取到之前的会话信息  



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

笑看天下无敌手

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表