・OpenBSD 7.8 amd64
・書きかけ (tips があれば隨時更新)
OpenBSD に附屬する httpd に就ての覺書。
ここでは解説しないが onion や i2p で website を公開する時にも使へる。
設定ファイル /etc/httpd.conf を作成した後で daemon を有效化して起動する。
httpd.conf の記述方法は man httpd.conf を參照。
尚 /etc/examples/httpd.conf に見本となるファイルが存在する。
$ doas vi /etc/httpd.conf $ doas rcctl enable httpd $ doas rcctl start httpd
設定ファイルの記述が正しいかどうか確認するには httpd -n を使用する。
$ doas httpd -n
http://localhost:3000/ でファイルを公開してみる。
まづ公開用の directory を作成して作業用の user でファイルを保存できる樣にする。
$ whoami tak4 $ doas mkdir /var/www/public $ doas chown tak4:www /var/www/public $ echo hello httpd > /var/www/public/hello
設定ファイル /etc/httpd.conf に次の内容を記述する。
"default" の部分の名前は任意。
ただし同じ port で複數サイトを公開する時はここに domain を記述する必要がある。
(virtual host 的な機能)
server "default" {
listen on * port 3000
root "/public"
}
尚 listen on 127.0.0.1 port 3000 の樣にすると内部からのみ接續できる。
又 local IP address を指定すると、その network 内からのみ接續できる。
httpd.conf を編輯して保存できたら daemon を開始 (再開) する。
$ doas rcctl stop httpd $ doas rcctl start httpd
適當な Web User Agent で接續してみる。
$ w3m http://localhost:3000/hello.txt
試した後は daemon を停止、無效にしておく。
$ doas rcctl stop httpd $ doas rcctl disable httpd
httpd.conf の listen on に不正な address を指定すると httpd が動作しなくなる。
(例へば、listen on 192.168.10.10 port 3000 と指定しておきながら
自身に 192.168.10.10 が割り當てられてゐない場合など)
この場合 httpd の開始時に httpd (ok) と表示されるが process は即終了する。
/var/log/daemon には以下のログが出力されてゐる。
parent: send server: Can't assign requested address
これを解決するには該當する listen on の行を修正して httpd を起動するとよい。
可能であれば liten on * を指定する。
WireGuard などと併用する時は、wg-quick up の後で httpd が起動される樣に
cron などで設定しておけば良いはず。
・httpd(8) - OpenBSD manual pages
・httpd.conf(5) - OpenBSD manual pages
・OpenBSD httpd 7.3: Web サーバー | OpenBSD Solutions ブログ
・httpd.rocks - Setup an HTTPS-enabled webserver with httpd on OpenBSD
・httpd | OpenBSD Handbook
「美々蝶々」目次
更新 2025-10-31 (陰暦09月11日)