ubuntu 1404部署tomcat7

裝好ubuntu 1404 LTS 和tomcat7後,啓動正常,默認端口8080。希望改成80端口,啓動失敗了。看日誌是權限問題,原來只有root用戶才能使用1024以下端口。搜索到解決辦法是編輯/etc/default/tomcat7 文件,設置爲
AUTHBIND=yes
再啓動,還是失敗,顯示沒有文件或目錄。一心認爲還是和權限相關,於是想盡各種辦法使得以root用戶登入:
新建文件 /etc/lightdm/lightdm.conf,加入內容:
[SeatDefaults]
autologin-user=root
autologin-user-timeout=3 #等候3秒
autologin-session=lightdm-autologin
折騰好一通,總算以root用戶登錄了,結果還是沒用。意識到不是權限問題。繼續搜索,終於還是在萬能的stackoverflow找到解決辦法:
除了編輯/etc/default/tomcat7 這個文件外,還要做如下操作:
sudo touch /etc/authbind/byport/80
sudo chmod 500 /etc/authbind/byport/80
sudo chown tomcat7 /etc/authbind/byport/80

費了一天勁終於搞定了。但考慮到未來需要租用虛擬主機部署應用,很可能拿不到root用戶權限,所以把之前的一些辦法也保存下來待用。
那就是採用iptables進行端口轉發:

#添加端口轉發規則
sudo iptables -t nat -A PREROUTING  -p tcp --dport 80 -j REDIRECT --to-port 8080

#查看當前規則
sudo iptables -t nat -L -nv --line-numbers
#刪除規則
sudo iptables -t nat -D PREROUTING 1

#保存並在啓動時自動加載規則
sudo sh -c "iptables-save > /etc/iptables.rules"
sudo nano /etc/network/interfaces  ,末尾添加
pre-up iptables-restore < /etc/iptables.rules

==================================================
調試途中各種小細節一併記錄,省得每次都去搜了:

#查看系統網卡
ifconfig -a | grep eth
#更詳細信息
sudo lshw -class network

#臨時配置網卡ip地址
sudo ifconfig eth0 10.0.0.100 netmask 255.255.255.0

#傳統設置網卡信息方法
sudo nano /etc/network/interfaces
#傳統設置dns方法
sudo nano /etc/resolv.conf
之所以稱之爲傳統方法,因爲在當前的桌面版看不到這個文件有什麼關於ip的記錄,那麼是記到哪去了呢?查閱官方文檔,在新增加的/etc/NetworkManager/system-connections中,用於管理動態網絡連接,比如有線無線隨時切換等等。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章