• Category Archives: lighttpd

lighttpd添加反向代理功能

1、启用lighttpd的反向代理模块:

编辑/etc/lighttpd/modules.conf文件,找到以下代码:

##
## mod_proxy
##
#include "conf.d/proxy.conf"

去掉以下代码开头的“#”号即可

#include "conf.d/proxy.conf"

2、编辑/etc/lighttpd/lighttpd.conf文件,添加以下代码:

#tomcat

$HTTP["host"] =~ "(abc\.com|www\.abc\.com)$" {
	proxy.balance = "hash" 
	proxy.server  = ( "" => ( ( "host" => "127.0.0.1", "port" => 8080 ) ) )
}

3、重启lighttpd服务器

service lighttpd restart

 

 

 

关于匹配符的初步理解:

== 意味着匹配规则将使用普通的方法

=~ 意味着匹配规则将使用正则表达式?(未确定)

!~ 意味着不匹配规则将使用正则表达式

^表示开头

 

 

 

 

其他的一些配置参考:

 

$HTTP["host"] =~ "(sway\.com\.cn|www\.sway\.com\.cn)$" {
	server.document-root = "/home/xinsiwei.20150120.igongcha/ROOT"
	$HTTP["url"] !~ "\.(gif|jpg|png|txt|html|css|js|swf)$" {
		proxy.server  = ( "/" => ( ( "host" => "127.0.0.1", "port" => 8128 ) ) )
	}
}

这个的意思是,除了gif|jpg|png|txt|html|css|js|swf外,其余请求全部转发到127.0.0.1:8128端口上去

 

$HTTP["host"] == "liaoxuefeng.com" {
    url.redirect = ( "^/(.*)" => "http://www.sway.com.cn/$1" )
}

这个的意思是,所有域名为liaoxuefeng.com的请求,全部跳转到http://www.liaoxuefeng.com/上去,并且自动匹配并补充url地址

 

$HTTP["host"] == "www.sway.com.cn" {
    server.name = "www.sway.com.cn"
    server.document-root = "/home/www/sway/"

    $HTTP["url"] !~ "^(favicon.ico|.*/static/.*)$" {
        proxy.server = ( "" => (( "host" => "127.0.0.1", "port" => 8000 )))
    }
}

这个的意思是,除了favicon.ico及文件夹为/static/的url外,将全部请求转发到8000端口上

 

CentOS yum安装Lighttpd附带PHP和MySQL支持

一、安装lighttpd

由于CentOS官方的源中没有Lighttpd包,因此需要手动导入RPMforge源:

如果你是64位的系统:

wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
rpm -Uvh rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm

如果是32位系统:

wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
rpm -Uvh rpmforge-release-0.5.2-2.el5.rf.i386.rpm

然后,你可以像这样安装Lighttpd:

yum install lighttpd

接着我们设置开机启动lighttpd并立即启动它:

chkconfig --levels 235 lighttpd on
/etc/init.d/lighttpd start

 问题1:

如果在启动的时候提示如下错误:

(network.c.203) socket failed: Address family not supported by protocol

则打开 /etc/lighttpd/lighttpd.conf 文件,找到server.use-ipv6一行配置节,将enable改为disable,基本上可以正常启动。

问题2:

如果启动时出现如下错误:couldn’t set ‘maxfiledescriptors’ Operation not permitted

解决办法:

1)关闭selinux:

# vi /etc/selinux/config

将SELINUX=enforcing改为SELINUX=disabled后重启。

2)创建一个selinux模块允许lighttpd有权限设置filedescriptor限制

# /usr/sbin/semodule -DB
# service auditd restart
# service lighttpd restart

问题解决!问题出现原因:因为使用root权限登录的CentOS,所以不存在权限的问题,其实是selinux限制了程序设置最大文件描述符,关闭限制后就可以重启

 

二、添加php支持

yum install lighttpd-fastcgi php-cli

安装好对应的fastcgi以及php模块后对lighttpd进行配置。

1 、打开 /etc/php.ini 文件

在文件的最后(END前)添加一句

cgi.fix_pathinfo = 1

2、打开 /etc/lighttpd/modules.conf 文件

将 include “conf.d/fastcgi.conf” 一行取消注释并保存

3、打开 /etc/lighttpd/conf.d/fastcgi.conf 文件

找到 fastcgi.server这一节配置段,并将其全部反注释(使之生效),并修改为如下(注意红色为修改部分):

fastcgi.server = ( “.php” =>
( “php-local” =>
(
“socket” => “/tmp/php-fastcgi-1.socket“,
“bin-path” => “/usr/bin/php-cgi“,
“max-procs” => 1,
“broken-scriptfilename” => “enable”,
)
),
( “php-tcp” =>
(
“host” => “127.0.0.1″,
“port” => 9999,
“check-local” => “disable”,
“broken-scriptfilename” => “enable”,
)
),
( “php-num-procs” =>
(
“socket” => “/tmp/php-fastcgi-2.socket“,
“bin-path” => “/usr/bin/php-cgi“,
“bin-environment” => (
“PHP_FCGI_CHILDREN” => “16″,
“PHP_FCGI_MAX_REQUESTS” => “10000″,
),
“max-procs” => 5,
“broken-scriptfilename” => “enable”,
)
),
)

最后保存即可。

现在可以重启Lighttpd使之生效:

# /etc/init.d/lighttpd restart

三、添加php对mysql的支持

yum install php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc

上述命令已经同时安装好了php的MySQL、GD图形库、IMAP、ODBC、Pear、xml等支持组件。

close