LNMT

1.JVM基本介紹

2.Tomcat與Nginx區(qū)別

tomcat
    基于java開發(fā)一個(gè)web服務(wù)器軟件, 和nginx類似.
    tomcat能直接解析jsp代碼,以及靜態(tài)資源.
    nginx + tomcat 

3.Tomcat安裝配置啟動(dòng)

[root@web01 ~]# yum install java -y
二進(jìn)制安裝tomcat
[root@web01 ~]# mkdir /soft && cd /soft
[root@web01 soft]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.26/bin/apache-tomcat-9.0.26.tar.gz
[root@web01 soft]# tar xf apache-tomcat-9.0.26.tar.gz 
[root@web01 soft]# ln -s /soft/apache-tomcat-9.0.26 /soft/tomcat
[root@web01 soft]# /soft/tomcat/bin/startup.sh
[root@web01 soft]# netstat -lntp|grep java
tcp6       0      0 :::8009            :::*        LISTEN      8500/java           
tcp6       0      0 :::8080            :::*        LISTEN      8500/java           
tcp6       0      0 127.0.0.1:8005     :::*        LISTEN      8500/java    

無法啟動(dòng):
1.替換配置文件: pkill java 然后在啟動(dòng)
2.配置文件寫錯(cuò)
3.虛擬主機(jī)是添加,不要修改
4.context如果寫了,一定要有對(duì)應(yīng)的目錄,不然整體就報(bào)錯(cuò)
/soft/tomcat/logs/catalina.out

4.Tomcat配置文件詳解

https://www.cnblogs.com/yinzhengjie/p/9508426.html

image.png

  • 一個(gè)server表示一個(gè)tomcat實(shí)例
  • 一個(gè)server中包含多個(gè)Connector連接器,Connector的主要功能是接受、響應(yīng)用戶請(qǐng)求。
  • service的作用是:將connector關(guān)聯(lián)至engine(catalina引擎)
  • 一個(gè)host就是一個(gè)站點(diǎn),類似于nginx的多站點(diǎn)
  • context類似于nginx中l(wèi)ocation的概念

5.Tomcat部署博客項(xiàng)目zrlog

域名: zrlog.hai.com:8080
站點(diǎn)目錄: /code/zrlog

  • 1.配置server.xml文件 ,新增zrlog站點(diǎn)在 engline
[root@web01 ~]# vim /soft/tomcat/conf/server.xml
     <!--zrlog站點(diǎn)-->
    <Host name="zrlog.hai.com"  appBase="/code/zrlog"
          unpackWARs="true" autoDeploy="true">

      <Va0lve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
             prefix="zrlog_access_log" suffix=".txt"
             pattern="%h %l %u %t &quot;%r&quot; %s %b" />
    </Host>
  • 2.創(chuàng)建站點(diǎn)目錄,上傳zrlog的war包
[root@web01 ~]# mkdir /code/zrlog
[root@web01 ~]# cd /code/zrlog/
[root@web01 zrlog]# rz ROOT.war  
  • 3.重啟Tomcat服務(wù)
[root@web01 zrlog]# /soft/tomcat/bin/shutdown.sh && /soft/tomcat/bin/startup.sh && tail -f /soft/tomcat/logs/catalina.out
  • 4.域名劫持
  • 5.在172.16.1.51的數(shù)據(jù)庫上,創(chuàng)建一個(gè)zrlog的庫,配置授權(quán)訪問用戶
[root@db01 ~]# mysql -uroot -poldxu.com
MariaDB [(none)]> create database zrlog charset utf8;
    <---此前配置過all用戶,可以復(fù)用
MariaDB [(none)]> grant all privileges on *.* to 'all'@'%' identified by 'oldboy.com';

6.源碼包-->jar包--war包的關(guān)系

源碼包 --> 由開發(fā)人員編寫的
maven

  • jar --> 源碼包編譯
    無法獨(dú)立運(yùn)行, 需要被某個(gè)程序所依賴 mysql連接
    可以獨(dú)立運(yùn)行, java -jar xx.jar 啟動(dòng)
    https://gitee.com/chejiangyi/dingding-sonar
  • war --> 源碼包編譯, 可以直接放在tomcat中進(jìn)行部署 (這種類型居多)
    源碼-->maven編譯-->jar或者war包
    war包直接放入tomcat即可運(yùn)行, war在運(yùn)行過程中需要依賴 jar包
    jar包 分為兩種, 可獨(dú)立運(yùn)行(對(duì)外提供服務(wù)), 不可獨(dú)立運(yùn)行(被war依賴)

7.如何開啟 Server Status Host Manager頁面

1.配置conf/tomcat-users.xml

<role rolename="manager-gui"/>
<user username="tomcat" password="123456" roles="manager-gui"/>

2.如果訪問還是403,是因?yàn)閠omcat默認(rèn)僅運(yùn)行本地訪問該管理頁面,需要允許同網(wǎng)段主機(jī)訪問

[root@web01 ~]# ll /soft/tomcat/webapps/manager/
[root@web01 ~]# ll /soft/tomcat/webapps/host-manager/

[root@es-node1 tomcat]# vim 項(xiàng)目目錄下/META-INF/context.xml
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
#修改為
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|10\.0\.0\.\d+" />
  • 啟用zrlog的基礎(chǔ)認(rèn)證 ---> zrlog.oldxu.com/admin 了解 使用Nginx替代
[root@es-node1 tomcat]# vim /code/zrlog/ROOT/WEB-INF/web.xml
<web-app>
...
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>zrlog</web-resource-name>
            <url-pattern>/admin/*</url-pattern>
        </web-resource-collection>
    
        <auth-constraint>
            <role-name>zrlog_role</role-name>
        </auth-constraint>
    </security-constraint>
    
    <login-config>
        <auth-method>BASIC</auth-method>
        <realm-name>Default</realm-name>
    </login-config>
...
</web-app>
  • 配置用戶名密碼,關(guān)聯(lián)對(duì)應(yīng)的角色(多個(gè)role不要使用相同用戶)
[root@es-node1 tomcat]# vim /soft/tomcat/conf/tomcat-users.xml
<role rolename="zrlog_role"/>
<user username="tomcat" password="123456" roles="zrlog_role"/>
  • 重啟tomcat
[root@es-node1 ~]# /soft/tomcat/bin/shutdown.sh && /soft/tomcat/bin/startup.sh

8.部署多節(jié)點(diǎn)Tomcat-->mysql

10.0.0.7 ---> 10.0.0.51
10.0.0.8 ---> 10.0.0.51
1.安裝NFS

[root@nfs ~]# groupadd -g 666 www
[root@nfs ~]# useradd -u666 -g666 www
[root@nfs ~]# yum install nfs-utils -y
[root@nfs ~]# cat /etc/exports
/data/zrlog 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
[root@nfs ~]# mkdir /data/zrlog
[root@nfs ~]# systemctl restart nfs

2.找到圖片資源 推送圖片資源至NFS

[root@web01 ~]# scp -rp /code/zrlog/ROOT/attached/* root@172.16.1.31:/data/zrlog/
[root@nfs ~]# chown -R www.www /data/zrlog/         #重新授權(quán)

3.多節(jié)點(diǎn)掛載
mount -t nfs 172.16.1.31:/data/zrlog/ /code/zrlog/ROOT/attached/

9.接入負(fù)載均衡

[root@lb01 conf.d]# cat proxy_zrlog.oldhai.com.conf 
upstream  zrlog {
    server 172.16.1.7:8080;
    server 172.16.1.8:8080;
}

server {
    listen 80;
    server_name zrlog.oldxu.com;

    location / {
        proxy_pass http://zrlog;
        include proxy_params;
    }
}

10.session測(cè)試代碼用例,配置redis會(huì)話保持

  • 1.配置虛擬主機(jī)
[root@web01 conf]# vim /soft/tomcat/conf/server.xml 
<!--session站點(diǎn)-->
  <Host name="session.oldxu.com"  appBase="/code/session"
        unpackWARs="true" autoDeploy="true">
  </Host>
  • 2.準(zhǔn)備index.jsp文件(為了區(qū)分需要調(diào)整輸出的web01 web02)
[root@web01 conf]# cat /code/session/ROOT/index.jsp 
<body>
<%
//HttpSession session = request.getSession(true);
System.out.println(session.getCreationTime());
out.println("<br> web01 SESSION ID:" + session.getId() + "<br>");
out.println("Session created time is :" + session.getCreationTime()
+ "<br>");
%>
</body>
[root@tomcat ~]# wget https://github.com/ran-jit/tomcat-cluster-redis-session-manager/releases/download/3.0.3/tomcat-cluster-redis-session-manager.zip
[root@tomcat ~]# unzip tomcat-cluster-redis-session-manager.zip
[root@web01 ~]# cd tomcat-cluster-redis-session-manager

拷貝jar包

[root@web01 tomcat-cluster-redis-session-manager]# cp lib/* /soft/tomcat/lib/

拷貝tomcat連接redis配置文件

[root@web01 tomcat-cluster-redis-session-manager]# cp conf/redis-data-cache.properties /soft/tomcat/conf/

修改redis-data-cache.properties

[root@web01 ~]# vim /soft/tomcat/conf/redis-data-cache.properties
...
redis.hosts=172.16.1.51:6379
redis.password=123456           #有密碼就寫密碼,沒有不要寫
...
  • 4.添加如下兩行至tomcat/conf/context.xml
[root@web01 ~]# vim /soft/tomcat/conf/context.xml
<Context>
    .....
    <Valve className="tomcat.request.session.redis.SessionHandlerValve" />
    <Manager className="tomcat.request.session.redis.SessionManager" />
    ....
</Context>
  • 5.修改tomcat/conf/web.xml 配置文件session的超時(shí)時(shí)間 ,單位是分鐘
    <session-config>
            <session-timeout>60</session-timeout>       #根據(jù)情況調(diào)整
    </session-config>
  • 6.安裝redis,當(dāng)然也可以自行搭建redis集群
[root@redis ~]# yum install redis -y
[root@redis ~]# cat /etc/redis.conf
...
bind 172.16.1.51 127.0.0.1
requirepass 123456              #如果不需要密碼,則不要配置
...
[root@redis ~]# systemctl start redis
[root@redis ~]# systemctl enable redis

Nginx+Tomcat集群全站Https+SSL

[root@lb ~]# cat /etc/nginx/conf.d/proxy_zrlog.com.conf 
upstream zrlog {
    server 10.0.0.7:8080;
    server 10.0.0.8:8080;
}
server {
    listen 443 ssl;
    ssl_certificate ssl_key/server.crt;
    ssl_certificate_key ssl_key/server.key;
    server_name zrlog.oldxu.com;

    location / {
        proxy_pass http://zrlog;
        include proxy_params;
}
}
server {
    listen 80;
    server_name zrlog.oldxu.com;
    return 302 https://$http_host$request_uri;
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容