Nginxのリバースプロキシを置くようにした

自宅サーバーを少しづつモダンなサーバー環境に整えていく作戦その2。
昔ながらのApacheを置く形から、一番前にNginxのリバースプロキシを挟んで後ろに置いたApacheに割り振るようにした。 次はLet's EncryptでSSL化にするか、Docker、LXDの移行かな。
メモ
注意: SSL化していないので、ここの設定はhttp(80)だけです。
nofuture.tvはバーチャルホストでいくつかのサブドメインに分けて運営してますが、Apache2でやってます。今回、Apache2のバーチャルホストの設定もnginx側に持ってきてもよかったのですが、ここでは何も変更せず、来たものをそのままApache2に渡すだけにしています。
1. apache2のポートを変更する。
/etc/apache2/ports.conf のListenポートを80と443以外の適当なポート番号(たとえば10080と10443とか)に変更。
2. nginxをインストールする。
これも特別なことはしておらず、 apt install nginx でインストールしただけ。
3. /etc/nginx/sites-available に各バーチャルホストごとの設定ファイルを作成する。
nginxの設定を検索するとCentOSの設定が鬼のように引っかかりますが、 Debianで、それを真似はいけません 。 設定の置き方はDebianの流儀があるので、それに沿って設定を置きましょう。
ということで、バーチャルホストの設定は /etc/nginx/sites-available にバーチャルホストごとの設定ファイルを作成します。といっても、server_name宛にアクセスしてきたものを後ろのApache2側にそのまま投げるだけです。
server {
listen: 80;
server_name www.nofuture.tv;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / {
proxy_pass http://localhost:10080;
}
}
4. /etc/nginx/sites-enabled に /etc/nginx/sites-available 以下の設定ファイルのシンボリックリンクを貼る。
Apache2ではa2ensite/a2dissiteというスクリプトがありますが、nginxには無いので、 ln -s でシンボリックリンクを貼ります。
5. Apache2とnginxを再起動する。
できたら、systemctlでApache2とnginxを再起動して終わり。