国模少妇一区二区|亚洲一区av无码|无码加勒比中文字幕|亚洲av东方婷婷|97超碰麻豆果冻天美在线国产精品|蜜桃视频一区二区|91偷拍东北老熟女合集|91在线精品|9999国产一级片|天天综合网一二三区

最近新接手一個網(wǎng)站建設(shè)項目,用java開發(fā),以下兩個需求:

1、Tomcat需要降權(quán)運(yùn)行,不能以root用戶運(yùn)行,否則造成安全隱患。

2、Tomcat要運(yùn)行在80端口或者443端口上。

第一個需求很好滿足,主要是第二個需求。大家都知道,非root用戶在CentOS7系統(tǒng)上,是不能使用1024以下端口的,好在Tomcat提供了解決方案,那就是jsvc

jsvc 是在Apache基金會下的daemon項目下開源項目,主要功能是可以使一些運(yùn)行在普通用戶下的java進(jìn)程,獲取一些root權(quán)限下的權(quán)利,最常見的需求就是降權(quán)的Tomcat能夠使用80或者443端口了。

一:新建tomcat用戶和組,更改文件夾權(quán)限

CentOS 7.5 操作系統(tǒng)下,非ROOT用戶JSVC方式啟動Tomcat8
[root@web ~]# groupadd tomcat
[root@web ~]# useradd -s /sbin/nologin -g tomcat tomcat
[root@web ~]# chown -R tomcat:tomcat /home/tomcat8/

二:編譯JSVC

CentOS 7.5 操作系統(tǒng)下,非ROOT用戶JSVC方式啟動Tomcat8
編譯jsvc
[root@web ~]# cd /home/tomcat8/bin/
[root@web bin]# tar -xzvf commons-daemon-native.tar.gz
[root@web bin]# cd commons-daemon-1.2.2-native-src/unix/
[root@web unix]# ./configure 
[root@web unix]# make
[root@web unix]# cp jsvc ../..

三:創(chuàng)建系統(tǒng)服務(wù)

vim /usr/lib/systemd/system/tomcat.service 
下方信息根據(jù)實際情況填寫
[Unit]
Description=Apache Tomcat 8 Web Application Container
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/home/tomcat8/bin/tomcat.pid
Environment=CATALINA_PID=/home/tomcat8/bin/tomcat.pid
Environment=JAVA_HOME=/usr/local/java/jdk1.8.0_191
Environment=CATALINA_HOME=/home/tomcat8
Environment=CATALINA_BASE=/home/tomcat8
Environment=CATALINA_OPTS=

ExecStart=/home/tomcat8/bin/jsvc \
            -Dcatalina.home=${CATALINA_HOME} \
            -Dcatalina.base=${CATALINA_BASE} \
            -cp ${CATALINA_HOME}/bin/commons-daemon.jar:${CATALINA_HOME}/bin/bootstrap.jar:${CATALINA_HOME}/bin/tomcat-juli.jar \
            -user tomcat \
            -java-home ${JAVA_HOME} \
            -pidfile /home/tomcat8/bin/tomcat.pid \
            -errfile SYSLOG \
            -outfile SYSLOG \
            $CATALINA_OPTS \
            org.apache.catalina.startup.Bootstrap

ExecStop=/home/tomcat8/bin/jsvc \
            -pidfile /home/tomcat8/bin/tomcat.pid \
            -stop \
            org.apache.catalina.startup.Bootstrap
[Install]
WantedBy=multi-user.target

保存成功之后,我們就可以使用以下命令控制Tomcat了

啟動 systemctl start tomcat   
停止 systemctl stop tomcat
重啟 systemctl restart tomcat
查看狀態(tài) systemctl status tomcat 

如果systemctl start tomcat不能啟動,可以systemctl status tomcat查看狀態(tài),然后根據(jù)具體信息進(jìn)行排錯。比如我就因為第一次沒配置JAVA_HOME變量,導(dǎo)致啟動失敗,如下圖。

CentOS 7.5 操作系統(tǒng)下,非ROOT用戶JSVC方式啟動Tomcat8
因為沒配置JAVA_HOME,導(dǎo)致Tomcat啟動失敗

最后別忘記設(shè)置了開機(jī)自啟了和開放防火墻對應(yīng)端口。開機(jī)自啟命令是 systemctl enable tomcat

相關(guān)文章

發(fā)表回復(fù)

您的郵箱地址不會被公開。 必填項已用 * 標(biāo)注

聯(lián)系電話

176-8951-1878

微信
微信
分享本頁
返回頂部
西藏巨騰信息技術(shù)有限公司提供拉薩網(wǎng)站建設(shè)、軟件開發(fā)、小程序開發(fā)、APP開發(fā)、網(wǎng)絡(luò)營銷、在線推廣、在線商城開發(fā)等服務(wù),聯(lián)系電話: 17689511878