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チェーンを解除するには下のコマンドを打ち込む。
0
0