2024年4月27日 | ノート給油 |
2024年4月24日 | 三井住友カードゴールド(NL)へ切り替え |
2024年4月21日 | ドルチェ SACM171購入 |
2024年4月13日 | スピードマスタープロフェッショナルを調整に |
2024年4月13日 | コンクエストV.H.P.回収 |
2024年4月13日 | ランドマスター到着 |
2024年3月31日 | ATH-AD900X購入 |
2024年3月19日 | 分針 |
2024年3月17日 | グランドセイコー |
2024年2月12日 | Bluetoothマウス切断 |
FreeBSD 11.1p9でapache2.4.33を動かしているのだが、 どうもLet's EncryptのSAN証明書が使えない。 3月くらいまでは使えていたのだが。 OSかapacheのバージョンアップで何か変わったのかもしれない。 なので、フロントエンドをnginxにして、 CGIをapacheで実行するようにしてみた。
# pkg install nginx-full
でインストール。
設定ファイルは/usr/local/etc/nginx/nginx.confなので、 http以下を
http { include mime.types; default_type application/octet-stream; expires 7d; sendfile on; keepalive_timeout 65; gzip on; server { listen 80; server_name www.akiyama.nu; location / { root /usr/local/www/apache24/data; index index.html; ssi on; ssi_last_modified on; } # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/local/www/nginx-dist; } } # HTTPS server # server { listen 443 ssl http2; server_name www.akiyama.nu; ssl_certificate /usr/local/etc/letsencrypt/live/tomoaki.akiyama.nu/fullchain.pem; ssl_certificate_key /usr/local/etc/letsencrypt/live/tomoaki.akiyama.nu/privkey.pem; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers ECDHE+AESGCM:DHE+AESGCM:HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { root /usr/local/www/apache24/data; index index.html; ssi on; ssi_last_modified on; } } }
として実にあっさりと動いた。 で、locationやssl関連の設定はvirtual hostなど複数ヶ所で同じ物を使うので、 include化した。
http { include mime.types; default_type application/octet-stream; expires 7d; sendfile on; keepalive_timeout 65; gzip on; server { listen 80; server_name www.akiyama.nu; include root.conf; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/local/www/nginx-dist; } } # HTTPS server # server { listen 443 ssl http2; server_name www.akiyama.nu; include ssl.conf; include root.conf; } }
ssl.confやroot.confは/usr/local/etc/nginx/に配置してあり、 それぞれ
ssl_certificate /usr/local/etc/letsencrypt/live/tomoaki.akiyama.nu/fullchain.pem; ssl_certificate_key /usr/local/etc/letsencrypt/live/tomoaki.akiyama.nu/privkey.pem; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers ECDHE+AESGCM:DHE+AESGCM:HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on;
location / { root /usr/local/www/apache24/data; index index.html; ssi on; ssi_last_modified on; }
となっている。
なお、nginxではCGIを直接実行できない。 色々と方法はあるらしいが、 今回はapacheを8080ポートで待ち受けさせて、 そちらにproxyすることにした。
http { include mime.types; default_type application/octet-stream; expires 7d; sendfile on; keepalive_timeout 65; gzip on; server { listen 80; server_name www.akiyama.nu; include root.conf; location /awstats/awstats.pl { proxy_pass http://192.168.2.2:8080/awstats/awstats.pl; } location /awstatsclasses { alias /usr/local/www/awstats/classes/; } location /awstatscss { alias /usr/local/www/awstats/css/; } location /awstatsicons { alias /usr/local/www/awstats/icon/; } # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/local/www/nginx-dist; } } # HTTPS server # server { listen 443 ssl http2; server_name www.akiyama.nu; include ssl.conf; include root.conf; location /awstats/awstats.pl { proxy_pass http://192.168.2.2:8080/awstats/awstats.pl; } location /awstatsclasses { alias /usr/local/www/awstats/classes/; } location /awstatscss { alias /usr/local/www/awstats/css/; } location /awstatsicons { alias /usr/local/www/awstats/icon/; } } }
proxy_passでapacheに処理を任せている。 aliasは、AWStatsの画像がうまく表示されなかったので追加した。 これもhttpとhttpsの両方で同じ設定なので、 include化してある。
結局、nginxをリバースプロキシにして、 apacheをバックエンドで動かすことにした。 設定としては
と、比較的シンプルになった。 速度的には不利な方法だが、 CGIがそのまま動くという魅力には勝てなかった。