LighttpdNginx

 

Lighttpd

(http://lighttpd.net/)apache一样是开源的,与apache相比,虽然功能不及apache完善,稳定性 也不如apache,但是,不管是服务静态页面,还是服务动态内容(CGIPHP),它都比apache快,用于ad banner之类的WEB服务器是最恰当不过了。

# 修改配置文件
配置文件很直观明了,一般只要把server.document-rootserver.errorlogaccesslog.filename

改成你的实际目录和文件名字就可以了。:

安装步骤

tar xfz pcre-7.8.tar.gz

tar xfj lighttpd-1.4.28.tar.bz2

提供正则表达式支持

cd pcre-7.8

./configure&&make&&make install

安装lighttpd

cd /root/lighttpd-1.4.28

./configure&&make&&make install

mkdir -p /srv/www/htdocs

cd /root/lighttpd-1.4.28/doc/config/

禁用ipv6

sed -i '/server.use-ipv6/s/enable/disable/' lighttpd.conf

mkdir -p /var/log/lighttpd

cd /var/log/lighttpd

建立错误日志

touch error.log

cd ../..

useradd lighttpd

修改权限

chown -R lighttpd.lighttpd log

chmod -R 777 log

cd /usr/local/sbin

./lighttpd -f /root/lighttpd-1.4.28/doc/config/lighttpd.conf

 

LighttpdOpenSSL

Lighttpd默认不编译ssl模块,所以必须在编译的时候明确指定 --with-openssl,然后再生成自签署的服务器证书或者从CA那里获取
$ openssl req -new -x509 -keyout server.pem \
-out server.pem -days 365 -nodes
Lighttpd
要求证书和私匙保存在同一个文件里,如果是分开的,则需要合并:
$ cat host.key host.crt > host.pem
配置lighttpd.conf,大致样子如下:
ssl.engine = "enable"
ssl.pemfile = "server.pem"
你可以针对某个虚拟主机做这样的设置,但是由于SSL工作在TCP层,所以不能设置基于名称的虚拟主机,只能设置基于端口的。 以下是一个配置样例:
$SERVER["socket"] == "192.168.146.128:443" {
ssl.engine = "enable"
ssl.pemfile = "/usr/local/lighttpd/certs/server.pem"
server.document-root = "/home/www/wfs/www"
}

配置虚拟主机

配置基于端口的虚拟主机上文有所描述,基于名称的虚拟主机也很简单。修改lighttpd.conf,启动模块mod_simple_vhost,然后指定你的虚拟主机信息,比如:
$HTTP["host"] == "news.example.org" {
server.document-root =

"/var/www/servers/news2.example.org/pages/"
}

Lighttpd注重于速度,而Apache注重于稳定性和功能

防盗链
#$HTTP["referer"] !~ "^($|http://.*.(chinafotopress.com|chinafotopress.cn))" { 

  
#    $HTTP["url"] =~ ".(jpg|jpeg|png|gif|rar|zip|mp3)$" {


#       #url.redirect = (".*"    => "http://www.baidu.com/")


#        url.access-deny = (".jpg")
#    }
#}

#$HTTP["referer"] == "" {
#    $HTTP["url"] =~ ".(jpg|jpeg|png|gif|rar|zip|mp3)$" {


#       #url.redirect = (".*"    => "http://www.baidu.com/")


#        url.access-deny = (".jpg")
#    }
#}

 

 

Nginx

目前官方 Nginx 并不支持 Windows,您只能在包括 LinuxUNIXBSD 系统下安装和使用;

Nginx 本身只是一个 HTTP 和反向代理服务器,它无法像 Apache 一样通过安装各种模块来支持不同的页面脚本,例如 PHPCGI 等;

Nginx 支持简单的负载均衡和容错;

支持作为基本 HTTP 服务器的功能,例如日志、压缩、Byte rangesChunked responsesSSL、虚拟主机等等,应有尽有。

 tar zxvf pcre-7.7.tar.gz

 cd pcre-7.7

./configure&&make&& make install

 tar zxvf nginx-0.6.31.tar.gz

cd nginx-0.6.31

 ./configure --with-http_stub_status_module –prefix=/opt/nginx&& make&& make install

安装成功后 /opt/nginx 目录下有四个子目录分别是:confhtmllogssbin 。其中 Nginx 的配置文件存放于 conf/nginx.confNginx 只有一个程序文件位于 sbin 目录下的 nginx 文件。确保系统的 80 端口没被其他程序占用,运行 sbin/nginx 命令来启动 Nginx

程序运行参数

Nginx 安装后只有一个程序文件,本身并不提供各种管理程序,它是使用参数和系统信号机制对 Nginx 进程本身进行控制的。 Nginx 的参数包括有如下几个:

-c <path_to_config>:使用指定的配置文件而不是 conf 目录下的 nginx.conf

-t:测试配置文件是否正确,在运行时需要重新加载配置的时候,此命令非常重要,用来检测所修改的配置文件是否有语法错误。

-v:显示 nginx 版本号。

-V:显示 nginx 的版本号以及编译环境信息以及编译时的参数。

Nginx 监控

我们定义了一个 location ~ ^/NginxStatus/,这样通过 http://localhost/NginxStatus/ 就可以监控到 Nginx 的运行信息

NginxStatus 显示的内容意思如下:

active connections – 当前 Nginx 正处理的活动连接数。

server accepts handled requests -- 总共处理了 14553819 个连接 , 成功创建 14553819 次握手 ( 证明中间没有失败的 ), 总共处理了 19239266 个请求 ( 平均每次握手处理了 1.3 个数据请求 )

reading -- nginx 读取到客户端的 Header 信息数。

writing -- nginx 返回给客户端的 Header 信息数。

waiting -- 开启 keep-alive 的情况下,这个值等于 active - (reading + writing),意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接。