環境
・Windows Server 2016 Standard
・Apache 2.4.54(Win64)
・jdk1.8.0_331
・Apache Tomcat 8.5.81
・MySQL 8.0.29 for Win64 on x86_64
・mysql-connector-java-8.0.30.jar
Windows Server 2016構築時の初期設定
以下の私の記事を参考していただけると幸いです。
https://qiita.com/maplejava/items/a1b1b306edc243ecd3d8
JDBCドライバの配置
以下のサイトを参考に、JDBCドライバをインストールし、デプロイしたいWebアプリケーション内のWEB-INF/libフォルダ内に配置します。
https://qiita.com/Yuriko-Y/items/d4c5cb29780ce0347375
Webサーバ構築
Visual C++ 再頒布可能パッケージのインストール
https://docs.microsoft.com/ja-JP/cpp/windows/latest-supported-vc-redist?view=msvc-170#visual-studio-2015-2017-2019-and-2022
→VC_redist.x64.exe
→exeを起動後、画面に従ってインストール。
Apacheのインストール
https://www.apachelounge.com/download/
→httpd-2.4.54-win64-VS16.zip
→ダウンロード後、任意のフォルダに解凍する。
サービスの自動起動設定
「サービス」からApacheのサービスを右クリックして「プロパティ」をクリック。
→「スタートアップの種類」を「自動」にして「OK」
APサーバ構築
JDKのインストール
https://www.oracle.com/java/technologies/downloads/archive/
→jdk-8u331-windows-x64.exe
→exeを起動後、画面に従ってインストール。
システム環境変数の追加
Windowsボタンを右クリック→システム→環境変数
→システム環境変数に以下の変数を追加。
変数名:JAVA_HOME
値:JDKのインストール先フォルダ
例:C:\Program Files\Java\jdk1.8.0_331
Tomcatのインストール
https://tomcat.apache.org/download-80.cgi
→32-bit/64-bit Windows Service Installer (pgp, sha512)
→exeを起動後、画面に従ってインストール。
※インストール時「Configuration Options」の「Tomcat Administrator Login」で「User Name」「Password」「Roles」を設定する。
サービスの自動起動設定
「サービス」からTomcatのサービスを右クリックして「プロパティ」をクリック。
→「スタートアップの種類」を「自動」にして「OK」
システム環境変数の追加
追加方法はWebサーバの時と同じです。
変数名1:CATALINA_HOME
値1:Tomcatのインストール先フォルダ
例:C:\Program Files\Apache Software Foundation\Tomcat 8.5
変数名2:CATALINA_BASE
値2:Tomcatのインストール先フォルダ
例:C:\Program Files\Apache Software Foundation\Tomcat 8.5
WARファイルのインポート
APサーバでhttp://127.0.0.1:8080にアクセス。
→Manager Appをクリック。
→ユーザ、PWを聞かれるのでインストール時に指定した「User Name」「Password」を入力する。
→「Tomcat Webアプリケーションマネージャ」画面の「WARファイルの配備」からデプロイしたいWARファイルをTomcatにインポートする。
→APサーバでhttp://127.0.0.1:8080/[WARファイル名]/[サーブレットのコンテキストパス]でアクセスできたら上手くいっています。
DBサーバ構築
MySQLのインストール
インストールには、以下の記事が分かりやすかったので参考にさせて頂きました。
https://qiita.com/karakuri-t910/items/301a4585c54f4cab34a2
サービスの自動起動設定
「サービス」からMySQLのサービスを右クリックして「プロパティ」をクリック。
→「スタートアップの種類」を「自動」にして「OK」
システム環境変数Pathに値を追加
Webサーバ、APサーバの時のように変数自体を追加するのではなく、元々あるPathという変数に値を追加します。
Windowsボタンを右クリック→システム→環境変数
→システム環境変数の変数名が「Path」である行をクリックし、「編集」→「新規」でMySQLのインストール先フォルダを追加。
例:C:\Program Files\MySQL\MySQL Server 8.0\bin
データベースの構築
コマンドプロンプトで以下のコマンドを実行し、rootとしてmysqlにログインする。
> mysql -u root -p
以下の記事のコマンドを参考に、データベースを構築します。
https://qiita.com/ksugawara61/items/9db198041dec159ed0fe
外部接続用DBユーザの作成と接続許可
mysql> CREATE USER ユーザ名@'[APサーバのIPアドレス]' IDENTIFIED BY '接続時のパスワード'
mysql> GRANT ALL PRIVILEGES ON データベース名.テーブル TO ユーザ@'[APサーバのIPアドレス]'
※データベース名.テーブルはアスタリスク「*」も使える。例えば「*.*」ですべてのDB、すべてのテーブルへのアクセスを許可する。
また「データベース名.*」でそのデータベースのすべてのテーブルへのアクセスを許可する。
Apache Tomcatの連携
・設定後のイメージ
クライアント端末→Webサーバ(80番ポート)→APサーバ(8009番ポート)
※元々APサーバ(Tomcat)では8080番ポートを受け付けている。
ファイアウォールの穴あけ
WebサーバとAPサーバで以下の手順を行う。
「セキュリティが強化されたWindows Defender ファイアウォール」
→「受信の規則」
→「新しい規則」
→「新規の受信の規則ウィザード」で以下の通り設定。
・規則の種類:ポート
・適用先:TCP
・特定のローカルポート
Webサーバ:80
APサーバ:8009
・接続を許可する
・ドメイン、プライべート、パブリックにチェック
Webサーバ
・httpd.conf
※192.168.1.11はTomcatサーバのIPアドレス。
//↓追記
ServerName localhost:80
ProxyPass / ajp://192.168.1.11:8009/
ProxyPassReverse / ajp://192.168.1.11:8009/
//↓コメントアウトを解除する。
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
APサーバ
・server.xml
8080の記述をコメントアウトして以下の記述をする。
<Connector protocol="AJP/1.3"
port="8009"
redirectPort="8443"
address="0.0.0.0"
secretRequired="false" />
これで設定は完了です。
http://192.168.1.10/[ProxyPassの後に指定したキーワード]/[warファイル名]/[サーブレットのコンテキストパス]でアクセスできたらタイトルの通り目標達成です!
※192.168.1.10はWebサーバのIPアドレス。ポート番号は指定しない。
※「ProxyPassの後に指定したキーワード」は今回「/」なので省略して大丈夫です。