-100p

-10p

+10p

+100p

Tomcatのポート番号を変更

Ubuntu環境、sever.xmlをいじってTomcatのポート番号を変更する。

関連ページ
Tomcatのデフォルトのポート番号は8080なので、たとえばunity-engineer.topのドメインに繋ぐ場合は、unity-engineer.top:8080という冗長なURLを打ち込まないとサイトを見ることは出来ない。
一応、このTomcatのポート番号を80に変更すればドメイン名だけでhttp通信できるし、443にすればドメイン名だけでhttps通信できる。

server.xmlを編集する

まずserver.xmlがあるディレクトリに移動し、viコマンドで開く
cd 
 [Tomcatのインストールディレクトリ] 
/conf
sudo vi server.xml

中には大量のコメントアウトされたConnector設定が書いてあるが、初期状態では下コードが有効化されているはず。
<Connector port="8080" protocol="HTTP/1.1"
<tab>connectionTimeout="20000"
<tab>redirectPort="8443" />
この8080の部分を80に変えるだけでOK。
<Connector port="80" protocol="HTTP/1.1"
<tab>connectionTimeout="20000"
<tab>redirectPort="8443" />
Tomcatを再起動する。
sudo service tomcat restart

これでポート80でTomcatに直接つなぐことはできる。ただ一般にはあまり良い方法とされてないらしい。

TomcatはApacheと連携することを前提に設計されていて、そのApacheのデフォルトのポート番号はhttp通信が80、httpsは443になっている。
同じサーバ内で、違うアプリケーションが同一のポート番号を共有することはできない。
もしApacheと連携するつもりなら、このTomcatのポート番号を80や443にするのは確かによくない。

Apacheと連携する場合は、リバースプロキシという方法でTomcatがどんなポート番号であろうと助長なURL入力を避けることができる。
ただApacheを知識ゼロから導入するのは結構も面倒でもある。
Tomcatだけでサイトを運営するなら、ポートを80に変えてしまうのも別に良いんでわと思う。

ポート80接続とポート443接続両方に対応する

server.xmlはポート番号が被っていなければ、複数のConnector設定を有効にできる。
http通信とともにhttps通信を有効にする場合、下のようなコードを打ち込む。
SSL認証は済んでいるものとする。
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"    
    SSLEnabled="true"    
    scheme="https"    
    secure="true"    
    clientAuth="false"    
    sslProtocol="TLS"    
    keystoreFile="
 [keystoreのpath] 
" keystorePass="
 keystoreのパスワード 
"    
    redirectPort="8443"/>
Tomcatを再起動する。
sudo service tomcat restart

natを使ってポート8080からポート80に繋ぐ

server.xmlを変えなくても、natのPREROUTINGチェーンを使うと内部的にポート8080の接続をポート80に変換してくれる。
sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
こちらの方が解決法としては簡単かもしれない。

PREROUTINGチェーンを解除するには下のコマンドを打ち込む。
sudo iptables -t nat -F
0
0

-100p

-10p

+10p

+100p