| 2025年9月7日 | 856.Bオーバーホール |
| 2025年9月6日 | HP35s電池交換 |
| 2025年9月3日 | PX-M730Fの黒インクカートリッジ交換 |
| 2025年8月10日 | ノート再施工 |
| 2025年7月21日 | 音声途絶 |
| 2025年7月14日 | RN-SP0002S電池交換 |
| 2025年3月18日 | emacs近代化改修 |
| 2025年2月3日 | メールが復活? |
| 2025年1月4日 | ザ・シチズン時刻合わせ |
| 2025年1月3日 | コンクエストV.H.P. 時刻合わせ |
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がそのまま動くという魅力には勝てなかった。