最近一直在玩 Lighttpd 這一套 web 的 daemon,我覺得這一套還蠻好用的,不像 Apache 掛載這麼多 module 結果吃還蠻大的資源,加上 Apache 預設跑 MPM prefork 所以如果大型網站大概就會掛掉,線上人數一堆,就會快撐不住了,所以用 MPM worker 或者是 MPM Event,然後 Lighttpd 本身還支援 mod_rewrite 的功能,可以參考我之前寫的 [FreeBSD]Lighttpd + php5 + 解決 wordpress Permalinks 問題,不過最近遇到一個很奇怪問題,那就是 Lighttpd 會自己掛點,但是我看 message 跟 error log 底下是:
2008-07-10 09:08:31: (server.c.1258) NOTE: a request for /wp-includes/js/scriptaculous/effects.js?ver=1.8.0 timed out after writing 32991 bytes. We waited 360 seconds. If this a problem increase server.max-write-idle
我發現,這個問題是還好,不過我參考了
gaslin 大神的這一篇lighttpd + FastCGI + PHP 時的問題,裡面提到FastCGI 跑 TCP socket 比較沒問題,但是用 UNIX 的 socket 會比較有問題,那我也參考了 Lighttpd 的 Wiki 上用 Handy External Spawning FastCGI PHP Processes in FreeBSD 這篇所提供的 script,下去跑,最近還在看看結果如何,那大致上作法如下: 1. 把 fastcgi-php.sh 下載到 /usr/local/etc/rc.d/ 裡面 2. 按到底下步驟
# # 下面幾乎不用改 # cd /usr/local/etc/rc.d/ chown root:wheel fastcgi-php.sh chmod 544 fastcgi-php.sh mkdir /var/run/fcgiphp chown www:www /var/run/fcgiphp3. 設定 /etc/rc.conf
# # 基本 rc.conf 設定 # # 開機啟動 fcgiphp_enable="YES" # fast-cgi 指令 fcgiphp_bin_path="/usr/local/bin/php-cgi" fcgiphp_user="www" fcgiphp_group="www" fcgiphp_children="10" fcgiphp_port="8002" # 如果你要用 tcp socket 的話,那就是把 下面清空 fcgiphp_socket="" fcgiphp_env="SHELL PATH USER" fcgiphp_max_requests="500" fcgiphp_addr="localhost"4. 啟動 fast-cgi
# /usr/local/etc/rc.d/fastcgi-php.sh start Starting fcgiphp. # /usr/local/etc/rc.d/fastcgi-php.sh stop Stopping fcgiphp. # /usr/local/etc/rc.d/fastcgi-php.sh restart Stopping fcgiphp. Starting fcgiphp.5. 修改 Lighttpd.conf
fastcgi.server = ( ".php" => ( "localhost" => ( "host" => "127.0.0.1", "port" => 8002, "bin-path" => "/usr/local/bin/php-cgi" ) ) )這樣大致上完成了。 介紹一下
Lighttpd 的 mod_proxy 功能,目前把圖片存放到另外一台,然後用 proxy 的功能導過去 設定如下:
$HTTP["host"] == "pic.wu-boy.com" { accesslog.filename = "/var/log/lighttpd/pic.wu-boy.com-access_log" proxy.server = ( "" => ( ( "host" => "140.123.107.54", "port" => 80 ) ) ) }這樣就可以達到你想要的功能了
See also
- OpenSSH 安全性漏洞 CVE-2016-0777 and CVE-2016-0778
- Jenkins + Apache User Auth
- Nginx + phpMyAdmin 搭配 SSL 設定
- PHP MVC Framework 搭配 Nginx + PHP-FPM 設定檔
- [筆記] 解決 apache mod_fcgid: HTTP request length 136000 (so far) exceeds MaxRequestLen (131072)
- 如何使用 Apache Module mod_mime
- [筆記] 在 Ubuntu mount DVD ISO 檔案
- Geany 編輯器搭配 sshfs 參數注意事項
- AWS 機器上 duplicated RPM 問題
- 安裝 XCache 加速 PHP 執行速度