2025年2月3日 | メールが復活? |
2025年1月25日 | PX-M730Fの黒インクカートリッジ交換 |
2025年1月13日 | ノート給油 |
2025年1月4日 | ザ・シチズン時刻合わせ |
2025年1月3日 | コンクエストV.H.P. 時刻合わせ |
2024年12月27日 | MacBook Airで外付けSSDにmacOSをインストール |
2024年12月7日 | 太陽電池パネル交換 |
2024年11月30日 | 鉛蓄電池交換 |
2024年11月29日 | MacBook Air M3購入 |
2024年11月22日 | セゾンゴールドアメックスカードの変化 |
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がそのまま動くという魅力には勝てなかった。