環境はちょっと古いwindows server 2012
本体をここからダウンロードする。
今回はStable versionを選択。この時点では1.20.1
適当なフォルダに解凍して配置。
今回はG:\apps\nginx-1.20という形にしておいた。
この状態で起動して試したい所だが、このサーバではIISが動いていたのでポートを変える。
ついでにIISと同じフォルダをルートに指定してみる。
server {
listen 8082;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root C:\inetpub\wwwroot;
index index.html index.htm;
}
これで単純なWebサーバとして問題なく動作した。
開始時はnginxのディレクトリまで移動してから起動させる。
nginxを終了する場合は注意が必要で、Ctrl+Cでは終了しない。
プロンプトを閉じても裏で実行されっぱなしになるので、別のプロンプトから
nginx.exe -s quit
を叩く。
プロンプトを閉じるだけだとconfを変えても効果がない!となって時間を無駄に食う。(1敗)
次に、起動しているTomcat8.5と連携させる場合はlocationでproxy_passを利用する。
Tomcat側でBasic認証がかかっていても特に問題はない。
location / {
root C:\inetpub\wwwroot;
index index.html index.htm;
}
location /tomcat/ {
proxy_pass http://localhost:8834/tomcat/jsp/;
}
ただし、上の場合は相対パスでtomcat/jsp/default.css
のようにCallしている場合に問題が発生するので、後ろのproxy_passは外しておいた方が良い。
nginx側でBasic認証をかけたくなるが、ユーザとパスワードはデータベースにあるものを使うとすると
ここで紹介されているが、
MySQLの場合はPAMとセットで対応した事例がある。(LinuxやらADととかの事例もありそう)
Linuxだとnginx-fullをDLしてやればいけそう。Windowsでは面倒そうなので一旦パス。
ファイルでパスワード管理するのであれば標準のnginxでいけるはず。
サービス化はwinswを使う方法がおそらく楽