ubutu tomcat 啟用80埠步驟
阿新 • • 發佈:2019-01-07
寫在前面的題記:
1. 80埠對於非root使用者是不開放的,非root使用者只能使用1024埠以上埠
2. tomcat會建立一個名為tomcat的伺服器使用者名稱
3. 80埠不對tomcat開放,因此需要使用iptables的轉發功能,把80埠訊息轉發給其他埠,比如8090,因此8090埠必須是tomcat的指定埠
具體步驟:
1. 修改tomcat的配置檔案server.xml(如果不知道在哪兒,就使用搜索功能:sudo find / -name server.xml)
<Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connection Timeout="20000" disableUploadTimeout="true"/> 修改為 <Connector port="80" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connection Timeout="20000" disableUploadTimeout="true"/> 並新增一個埠: <Connector port="8090" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connection Timeout="20000" disableUploadTimeout="true"/>
只需要修改port值就可以了
2. 修改 /etc/default/tomcat7檔案,並將檔案底部的AUTHBIND=no修改為AUTHBIND=yes
3. 繫結ip轉發,將80埠轉發到8090埠
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8090
注:如果以前使用過iptables轉發80埠,那麼需要把其他轉發規則先刪除掉:
以下命令用於檢視所有與80埠相關的轉發:
iptables -t nat -L -n | grep 80
結果有:
[email protected]
REDIRECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir ports 8000
REDIRECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir ports 8000
REDIRECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir ports 8090
刪除除8090埠以外的所有轉發,使用iptables -t nat -L -n --line-numbers命令將轉發規則以數字序號排列,好刪除
Chain PREROUTING (policy ACCEPT)
num target prot opt source destination
1 REDIRECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir ports 8000
2 REDIRECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir ports 8000
3 REDIRECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir ports 8000
4 REDIRECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir ports 8090
除第1條轉發
[email protected]:~# iptables -t nat -D PREROUTING 1
只剩下:
[email protected]:~# iptables -t nat -L -n | grep 80
REDIRECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir ports 8090
轉發就完成了!
3. 轉發完成後,如果伺服器是阿里雲,那麼 要在阿里雲的安全組策略中啟用80埠
4. 使用lsof -i:80命令檢視80埠是否被其他程序佔用,如果是aliyundun那麼沒有關係,不會結束程序,如果是其他程序那麼使用 (kill -9 程序ID) 殺掉程序
5. 直接開啟tomcat(ubuntu : service tomcat start)