1.nginx的基本作用
2.选择nginx的理由
a) 支持 5w 的并发。
b) 内存消耗少。
c) 成本低。
d) 节省带宽(??)。
e) 配置简单,支持重写( Rewrite ),内置健康检查,热部署,稳定性高。
3.nginx中location模块的详细参数介绍
Nginx的Location可以有以下几个匹配:
1. = 严格匹配这个查询。如果找到,停止搜索。
2. ^~ 匹配路径的前缀,如果找到,停止搜索。
3. ~ 为区分大小写的正则匹配
4. ~* 为不区分大小写匹配
5.!~和!~*分别为区分大小写不匹配及不区分大小写不匹配
文件及目录匹配
* -f和!-f用来判断是否存在文件
* -d和!-d用来判断是否存在目录
* -e和!-e用来判断是否存在文件或目录
* -x和!-x用来判断文件是否可执行
4.Nginx配置语法
详情看(http://hi.baidu.com/wastorode/blog/item/39bf710a132550db7acbe1ed.html)
5.详解一个实例
- 配置项详解。
- #使用的用户和组
- #user nobody;
- #衍生进程数(是cpu数的两倍)
- worker_processes 4;
- #系统默认的日志文件在nginx\logs 下
- #错误日志
- #error_log logs/error.log;
- #指定pid存放路径
- #pid logs/nginx.pid;
- events {
- #使用网络I/O模型,Linux系统推荐采用epoll。
- user epoll;
- #允许的最大连接数
- worker_connections 51200;
- }
- http {
- include mime.types;
- default_type application/octet-stream;
- #设置字符集,如果有多个字符集,就不要随便设置,应该在html中通过meta设置
- #charset utf-8;
- #部分nginx的全局变量。
- #log_format main '$remote_addr - $remote_user [$time_local] "$request" '
- # '$status $body_bytes_sent "$http_referer" '
- # '"$http_user_agent" "$http_x_forwarded_for"';
- #access_log logs/access.log main;
- #设置客户端能够上传的文件大小
- #client_max_body_size 8m;
- #允许发送文件
- sendfile on;
- #超时时间
- keepalive_timeout 65;
- #关闭gzip压缩
- gzip off;
- #负载均衡的主要模块
- upstream ttpod {
- #weight 服务器权重,值高分配到的客户端越多,默认1
- server www.ttpod.com:80 weight=1;
- #max_fails指定的时间内对后端服务器请求失败的次数。默认1.fail_timeout经历失败后的暂停时间。
- server www.baidu.com:80 max_fails=1 fail_timeout=30s;
- server www.google.cn:80;
- #还有backup服务器的设置。略
- }
- #设定虚拟服务器1
- server {
- listen 80;
- #我的内网ip。
- server_name localhost 192.168.3.33;
- #access_log logs/host.access.log main;
- location / {
- set $ismob 0;
- #if指令 ~区分大小写,~*不区分大小写
- if ( $http_user_agent ~* "nokia" )
- {
- set $ismob 1;
- #break;跳出
- proxy_pass http://wap.ttpod.com;
- }
- #空的UA默认为手机访问,^为起始位置,$为结束位置。
- if ( $http_user_agent ~ ^$ )
- {
- set $ismob 1;
- proxy_pass http://wap.ttpod.com;
- }
- #跳转到负载均衡设置中。
- proxy_pass http://ttpod;
- proxy_redirect default;
- }
- }
- }