201403311540Tomcat 運行在 port 80

Tomcat 預設是執行在 8080 port,Linux 系統預設是不讓使用者的服務開在 1024 port 以下的,那麼當我們使用 tomcat 來當 web server 時,修改了「/etc/tomcat6/server.xml」的 Connector 使其運作在 80 port就可能會造成 web 無法執行。

 

修改連接埠改用  80 port
sudo vi /etc/tomcat6/server.xml     這邊的 tomcat6 路徑要看你自己裝的是哪一版本
搜尋關鍵字「Connector」

<Connector port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
改成
<Connector port="80"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"
URIEncoding="UTF-8" />

重新啟動 tomcat
sudo /etc/init.d/tomcat6 restart

**************************************************

當無法正常啟用 tomcat 時,解決的方法有底下幾種:

★★1. 將 tomcat 的執行者 tomcat 身份升級為 root

sudo vi /etc/passwd 將 tomcat 使用者的 UID 設為 0

tomcat:x:95:95:Apache Tomcat:/usr/share/tomcat6:/sbin/nologin
改為
tomcat:x:0:95:Apache Tomcat:/usr/share/tomcat6:/sbin/nologin

 

★★2.修改 sudo vi /etc/tomcat6/tomcat6.conf
#TOMCAT_USER="tomcat"
改為
TOMCAT_USER="root"      # 表明要以 root 的身份來執行 tomcat

 

★★3. 利用 port number 轉址功能
將 80 port 收到的資料往 8080 port 丟
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

 

★★4. 創建一個不同用戶來執行
groupadd -g 80 daemon
adduser -o --home /daemon --shell /sbin/nologin --uid 80 --gid 80 -c "Web Server" daemon
注意 /sbin/nologin , 意味着該用戶不能登錄,同時我也沒有給它指定密碼,這個用戶只能用於啟動tomcat
chown daemon:daemon -R /srv/*
su - daemon -c "/srv/apache-tomcat/bin/startup.sh"

reference: http://netkiller.sourceforge.net/article/tomcat.html 

 

★★5. 使用proxy,但這個要安裝httpd (跟apache整合方法之一)
vi /etc/httpd/conf.d/proxy_ajp.conf
ProxyPass /tomcat/ ajp://localhost:8009/
但之後網址會變成 http://localhost/tomcat/app

Reference:http://blog.xuite.net/hankohya34/blog/63078274-Tomcat%20Permission%20denied%20%3Cnull%3E:80 
http://ir.org.tw/Wiki.jsp?page=Nturinstallfaq#section-Nturinstallfaq-Q56._E5_A6_82_E4_BD_95_E8_A8_AD_E5_AE_9ATomcat_E4_BD_BF_E7_94_A8port8020110609 

 

★★6.如果你是 Ubuntu and Debian systems 可以使用  Authbind 的方式
若你的系統沒 authbind 可以使用下面指令安裝
sudo apt-get install authbind

啟用 authbind 功能,修改 server.xml 檔案 (在路徑 /etc/tomcat6 或 /etc/tomcat7) 
AUTHBIND=yes

 

★★7. 使用 inetd 的方式執行
Reference : http://stackoverflow.com/questions/4756039/how-to-change-the-port-of-tomcat-from-8080-to-80 

1)增加 /etc/xinet.d/tomcat-http

service http
{
disable = no
socket_type = stream
user = root
wait = no
redirect = 127.0.0.1 8080
}


2) 增加 /etc/xinet.d/tomcat-https

service https
{
disable = no
socket_type = stream
user = root
wait = no
redirect = 127.0.0.1 8443
}


3) chkconfig xinetd on

4) /etc/init.d/xinetd start

Reference: java.net.BindException: Permission denied:80

回應
關鍵字
Google Search
Google
累積 | 今日
loading......
平均分數:0 顆星
投票人數:0
我要評分:
Google