Armadilloフォーラム

Lighttpdでのポート分け運用について

wmouse

2016年4月4日 15時11分

お世話様です。水口と申します。現在、IoT-G2にてWeb付き案件開発中です。
LighttpdでWebサーバーを構築する際、外からのアクセスをポートで分けたいと思っています。
たとえば、port=80に一般的なもの、port=8080に設定系のような運用を考えています。
ApacheならVirtualHost機能が使えたのですが、Lighttpdでの同様の設定方法が分からず、どなたか経験された方がいらっしゃいましたら情報いただきたく。
まずは、ポート分け運用が可能かどうか?だけでも結構です。
Lighttpdの開発サイト?のドキュメントを見たのですが、理解できていません。
一般的なことで申し訳ないのですが、よろしくお願いします。
以上

コメント

平野と申します.

アットマークディストにある下記のファイルは参考になりますか?
atmark-dist/user/lighttpd/doc/simple-vhost.txt

平野様

情報ありがとうございました。この情報で対応可能か、確認したいと思います。

水口

本件、次のような対応にしようと思いますが、自分の理解が足りないので自信がありません。

httpd.confには、ポートの設定とBASIC認証する・しないの別を書き分けて/etcに配置しておく。
ex: httpd.conf (port=80,BASIC認証あり)、httpd_8080.conf(port=8080、BASIC認証なし)
2つのlighttpdをそれぞれ別のhttpd.confを指定して起動する。

どなたかコメントいただけると精神的にも楽になるのですが・・・・・。
よろしくお願いします。

水口

at_yuma.arakawa

2016年4月7日 15時24分

> httpd.confには、ポートの設定とBASIC認証する・しないの別を書き分けて/etcに配置しておく。
> ex: httpd.conf (port=80,BASIC認証あり)、httpd_8080.conf(port=8080、BASIC認証なし)
> 2つのlighttpdをそれぞれ別のhttpd.confを指定して起動する。

ご提示の方法で問題ないと思います。

以下を試してみた所、80番と8080番のそれぞれのlighttpdは共に動作していました。

[armadillo]# cp /etc/lighttpd.conf /etc/config/lighttpd_8080.conf
[armadillo]# vi /etc/config/lighttpd_8080.conf
             => ポート番号とドキュメントルートを変更
[armadillo]# lighttpd -f /etc/config/lighttpd_8080.conf

その方法は、vhost ではなく、完全に別プロセスにするってことですよね?
それで困らないのであれば、そのままで良さそうです。

一つのプロセスで複数の PORTを見たいときは、

$ cd /tmp
$ cat a.conf
server.port = 8080
server.document-root = "/tmp"
 
$SERVER["socket"] == ":8081" {
  server.document-root = "/tmp/foo"
}
 
debug.log-request-header = "enable"
debug.log-request-handling = "enable"
mimetype.assign   = ( ".html" => "text/html" )
$ echo foo > foo/index.html
$ echo hello > index.html
$ /usr/sbin/lighttpd -D -f /tmp/a.conf 
$ curl http://localhost:8080/index.html
hello
$ curl http://localhost:8081/index.html
foo

https://redmine.lighttpd.net/projects/1/wiki/Docs_Configuration#Conditi…
$SERVER["socket"]
... Setting this directive also binds the daemon to this socket. Use this if you want to do IP/port-based virtual hosts.

各位

コメントありがとうございました。
すでにあるシステムと、必要な部分だけを抜き出して少し変更したものを並行して運用するのですが、既存システムにはなるべく触らないようにしたいため、今回は別プロセスにします。

今後ともよろしくお願いします。
以上