2012-09-17 66 views
11

首先,我只是想看到它不在ec2控制檯安全組安裝。因爲我可以設置apache,這是通過故障80端口,並能夠通過80端口訪問Apache網站。 但是對於tomcat它可以工作,如果我使用端口8080(默認)或一些大於1023的值(我認爲這個端口)。但是當我改變server.xml(改變8080到80),它不能工作,如果我使用80端口,我成功啓動服務,但沒有80/HTTP監聽。我知道它應該是一些特權問題(只有根可以啓動1023端口以下的服務)。但我不知道該怎麼做。Linux中的EC2(亞馬遜)不能使用端口80的tomcat

+0

[EC2中的Linux不能使用tomcat的端口80,但端口80對於Apache是​​可以的](http://stackoverflow.com/questions/12464888/linux-in-ec2-cannot-use-port-80 -for-tomcat-but-port-80-is-ok-for-apache) –

回答

1

配置Tomcat在Linux上的特權端口上運行的常用方法是使用authbind。您可以找到有關Ubuntu和Amazon Linux的詳細設置說明here

25

我個人對此問題的選擇是使用iptables將所有通信從端口80重定向到Tomcat運行的上端口(例如8080)。

/sbin/iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT 
/sbin/iptables -A INPUT -i eth0 -p tcp --dport 8080 -j ACCEPT 
/sbin/iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080 
+0

這是正確的答案。它只是通過端口80將流量重定向到8080,而不會限制出站流量。一些像這樣的iptable腳本阻止了http出於安全考慮,但是這使得在今天更新你的服務器非常困難。 – chubbsondubs

+0

[「雲中的貓」](http://www.excelsior-usa.com/articles/tomcat-amazon-ec2-advanced.html)文章介紹了幾條建議,截至2012年,他們似乎更喜歡' iptables「。 – amos

2

我之前做過這個的方式是使用Apache2作爲代理,使用虛擬主機和代理到Tomcat上。這將處理請求,然後也可以用作負載均衡器,如果將來您決定使用多個Tomcat進行負載均衡。