Nginx(发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,最初供俄国大型的入口网站及搜寻引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页伺服器中表现较好.目前中国大陆使用nginx网站用户有:新浪、网易、 腾讯,另外知名的微网志Plurk也使用nginx。

截至目前nginx已经发布到1.2.5稳定版。

nginx配置文件配置注意事项:

安装nginx时最好将第三方模块echo添加进来,便于调试输出。

一、location匹配顺序
本次测试只贴出了location配置段。
location = / {
      echo 'location = /';
}
location ^~ / {
      echo 'location ^~ /';
}
location ~ / {
      echo 'location ~ /';
}
location / {
      echo 'location /';
}
测试配置文件时发现:
[root@demo conf]# nginx -t
nginx: [emerg]
duplicate location "/" in /usr/local/nginx/conf/nginx.conf:25
nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed
重复的 / 配置,将"location /"或"location ^~ /"其一去掉即可,我们暂时注释掉"location /",测试。
[root@demo conf]# curl 192.168.0.6
location = /
发现location = /先被匹配到,是不是这个location在前面的原因呢?我们将它放到所有location的最后:
location ^~ / {
       echo 'location ^~ /';
}
location ~ / {
       echo 'location ~ /';
}
#location / {
#     echo 'location /';
#}
location = / {
       echo 'location = /';
}
再测:发现还是先匹配location = /,现在我们可以确定带=号的location优先匹配。first
[root@demo conf]# curl 192.168.0.6
location = /

我们把=号location去掉,再测试其他的:现在只剩下2个location了
location ^~ / {
        echo 'location ^~ /';
}
location ~ / {
        echo 'location ~ /';
}
#location / {
#      echo 'location /';
#}
[root@demo conf]# curl 192.168.0.6
location ^~ /
发现"location ^~ /"被匹配了,同样将它和"location ~ /"做位置交换
[root@demo conf]# curl 192.168.0.6
location ^~ /
还是"location ^~ /"优先匹配到,second
我们将它也去掉,比较"location ~ /"和"location /":
location ~ / {
                echo 'location ~ /';
}
location / {
                echo 'location /';
}
[root@demo conf]# curl 192.168.0.6
location ~ /
发现"location ~ /"被优先匹配了,再次调换它们的位置
location / {
                echo 'location /';
}
location ~ / {
                echo 'location ~ /';
}
[root@demo conf]# curl 192.168.0.6
location ~ /
还是"location ~ /"优先匹配,third
而"location /"最后匹配,即fourth

最后确定匹配顺序为:
1、location = /         相等匹配
2、location ^~ /        开头部分匹配,多用于目录d
3、location ~ /         一般正则匹配,多个正则同时匹配时,按顺序最先匹配的优先
4、location /           剩余匹配,前面都不匹配时,匹配这个