jdk1.8 tomcat9.0.93 主机网络分配 192.168.10.161 web1 192.168.10.162 web2 192.168.10.163 web3 192.168.10.164 nginx1 192.168.10.165 nginx2
tomcat部署 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 tar -xf jdk-8u421-linux-x64.tar.gz mv jdk1.8.0_421 /usr/local//usr/local/jdk1.8.0_421/bin/java -version wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.93/bin/apache-tomcat-9.0.93.tar.gz tar -xf apache-tomcat-9.0.93.tar.gz mv apache-tomcat-9.0.93 /usr/local/tomcatecho "export JAVA_HOME=/usr/local/jdk1.8.0_421" >> /etc/profilesource /etc/profilecd /usr/local/tomcat/bin/./version.sh ./startup.sh ps -ef | grep java | grep -cv "grep" tail /usr/local/tomcat/logs/catalina.outcurl localhost:8080 cat /usr/local/tomcat/logs/localhost_access_log.2024-08-20.txt/usr/local/tomcat/bin/shutdown.sh
tomcat文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 bin目录: 启停脚本startup.sh,shutdown.sh 修改配置脚本catalina.sh 版本信息version.sh conf目录: 主配置文件server.xml: 虚拟主机配置 Host 端口(协议)配置 Connector(http协议8080、AJP协议8009) 日志输出格式logging.properties lib目录: 存放默认的jar包 webapps目录: 放java程序的目录 ROOT目录-java程序默认的根目录
tomcat管理界面 生产环境别用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 默认安装完后,安全功能处于未打开状态 vim /usr/local/tomcat/conf/tomcat-users.xml 添加 <tomcat-users xmlns="http://tomcat.apache.org/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd" version="1.0" > <role rolename="admin-gui" /> <role rolename="host-gui" /> <role rolename="manager-gui" /> <user username="tomcat" password="tomcat" roles="admin-gui,host-gui,manager-gui" /> </tomcat-users> vim /usr/local/tomcat/webapps/manager/META-INF/context.xml 将allow修改为自己当前网段 allow="192\.168\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> /usr/local/tomcat/bin/shutdown.sh /usr/local/tomcat/bin/startup.sh
tomcat server.xml文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 1.定义关闭tomcat的方法 <Server port="8005" shutdown="SHUTDOWN" > 默认情况下通过如下操作就可以关闭tomcat telnet 127.0.0.1 8005 SHUTDOWN 修改默认关闭方式 <Server port="8123" shutdown="wangsheng" > pkill java /usr/local/tomcat/bin/startup.sh netstat -tunlp | grep java telnet 127.0.0.1 8123 wangsheng 2.网站根目录 <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" > name="localhost" 网站名称 appBase="webapps" 网站根目录 unpackWARs="true" 自动解压war包 autoDeploy="true" 自动部署 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> directory="logs" 日志目录 prefix="localhost_access_log" suffix=".txt" 日志前缀后缀 pattern="%h %l %u %t "%r" %s %b" 日志格式化方式
tomcat部署界面 简单界面部署
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 cd /usr/local/tomcat/webapps/mv docs examples host-manager manager /tmpmv ROOT/* /tmpscp memtest.war 192.168.10.161:/usr/local/tomcat/webapps cd /usr/local/tomcat/webapps/ls curl localhost:8080/memtest/meminfo.jsp JVM memory detail info :<br> Max memory:1739MB<br> Total memory:177MB<br> Free memory:135MB<br> Available memory can be used is :1697MB<br>
部署jpress
进入jpress下载war包
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 scp jpress-web-newest.war 192.168.10.161:/usr/local/tomcat/webapps cd /usr/local/tomcat/webappsls mv jpress-web-newest.war jpress.warls 浏览器登录http://192.168.10.161:8080/jpress 进行jpress安装 在发布博客后,其文档和图片信息都会存储在数据库中 select * from jpress_content\G*************************** 1. row *************************** id : 1 title: wangsheng text: <p><img src="/jpress/attachment/20240820/b32ec766fc8d47fdaad220b395ec4f5e.png" alt="" width="1080" height="764" ></p> summary: NULL link_to: NULL markdown_enable: 0 thumbnail: NULL module: article style: NULL user_id: 1 author: NULL user_email: NULL user_ip: NULL user_agent: NULL parent_id: NULL object_id: NULL order_number: 0 status: normal vote_up: 0 vote_down: 0 rate: NULL rate_count: 0 price: 0.00 comment_status: NULL comment_count: 0 comment_time: NULL view_count: 0 created: 2024-08-20 20:32:22 modified: 2024-08-20 20:32:22 slug: wangsheng flag: NULL lng: NULL lat: NULL meta_keywords: NULL meta_description: NULL remarks: NULL
tomcat多虚拟主机部署 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 多复制几个tomcat的目录,并修改其端口号 rm -rf /usr/local/tomcattar xf /root/apache-tomcat-9.0.93.tar.gz mv /root/apache-tomcat-9.0.93 /usr/local/tomcat-1cp -R /usr/local/tomcat-1 /usr/local/tomcat-2cp -R /usr/local/tomcat-1 /usr/local/tomcat-3修改tomcat/conf/server.xml文件中的port vim /usr/local/tomcat-1/conf/server.xml <Server port="9001" shutdown="SHUTDOWN" > <Connector port="8081" protocol="HTTP/1.1" vim /usr/local/tomcat-2/conf/server.xml <Server port="9002" shutdown="SHUTDOWN" > <Connector port="8082" protocol="HTTP/1.1" vim /usr/local/tomcat-3/conf/server.xml <Server port="9003" shutdown="SHUTDOWN" > <Connector port="8083" protocol="HTTP/1.1" /usr/local/tomcat-1/bin/startup.sh /usr/local/tomcat-2/bin/startup.sh /usr/local/tomcat-3/bin/startup.sh ss -tunlp | grep java tcp LISTEN 0 1 [::ffff:127.0.0.1]:9001 [::]:* users :(("java",pid=11545 ,fd=67 )) tcp LISTEN 0 1 [::ffff:127.0.0.1]:9002 [::]:* users :(("java",pid=11597 ,fd=67 )) tcp LISTEN 0 1 [::ffff:127.0.0.1]:9003 [::]:* users :(("java",pid=11629 ,fd=67 )) tcp LISTEN 0 100 [::]:8080 [::]:* users :(("java",pid=9340 ,fd=58 )) tcp LISTEN 0 100 [::]:8081 [::]:* users :(("java",pid=11545 ,fd=58 )) tcp LISTEN 0 100 [::]:8082 [::]:* users :(("java",pid=11597 ,fd=58 )) tcp LISTEN 0 100 [::]:8083 [::]:* users :(("java",pid=11629 ,fd=58 )) tcp LISTEN 0 1 [::ffff:127.0.0.1]:8123 [::]:* users :(("java",pid=9340 ,fd=67 ))
nginx配置tomcat反向代理 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 nginx主机 主配置文件 include /usr/local/nginx/conf/vhost/*.conf mkdir /usr/local/nginx/conf/vhostcat > /usr/local/nginx/conf/vhost/tomcat-LB.conf << 'EOF' upstream java { server 192.168.10.161:8081; server 192.168.10.161:8082; server 192.168.10.161:8083; } server { listen 8080; server_name www.jpress.com; location / { proxy_pass http://java; proxy_set_header Host $host ; proxy_set_header X-Real-IP $remote_addr ; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ; proxy_set_header X-Forwarded-Proto $scheme ; } } EOF chown -R www.www /usr/local/nginxnginx -s reload curl 192.168.10.164:8080 >> /dev/null 2>&1 echo $?
tomcat优化 1 2 3 4 5 6 7 8 9 10 11 关闭dns解析 vim /usr/local/tomcat-1/conf/server.xml ... <Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxParameterCount="1000" enableLookups='false' /> ...
jvm调优
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 一般以运行环境的为准 在bin/catalina.sh中添加 JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1024m -Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=512m -XX:MaxPermSize=512m" server:一定要作为第一个参数,在多个CPU时性能佳 -Xms:初始堆内存Heap大小,使用的最小内存,cpu性能高时此值应设的大一些 -Xmx:初始堆内存heap最大值,使用的最大内存 上面两个值是分配JVM的最小和最大内存,取决于硬件物理内存的大小,建议均设为物理内存的一半。 -XX:PermSize:设定内存的永久保存区域 -XX:MaxPermSize:设定最大内存的永久保存区域 -XX:MaxNewSize: -Xss 15120 这使得JBoss每增加一个线程(thread)就会立即消耗15M内存,而最佳值应该是128K,默认值好像是512k. +XX:AggressiveHeap 会使得 Xms没有意义。这个参数让jvm忽略Xmx参数,疯狂地吃完一个G物理内存,再吃尽一个G的swap。 -Xss:每个线程的Stack大小 -verbose:gc 现实垃圾收集信息 -Xloggc:gc.log 指定垃圾收集日志文件 -Xmn:young generation的heap大小,一般设置为Xmx的3、4分之一 -XX:+UseParNewGC :缩短minor收集的时间 -XX:+UseConcMarkSweepGC :缩短major收集的时间
启动慢问题
查看logs/catalina.out发现启动时间过长
1 2 3 4 5 6 find / -name "java.security" /usr/local/jdk1.8.0_421/jre/lib/security/java.security 禁止随机数生成 sed -n '117p' /usr/local/jdk1.8.0_421/jre/lib/security/java.security securerandom.source=file:/dev/urandom