注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

good luck guys

welcome

 
 
 

日志

 
 

NginX 配置小记 - cloudycliff - 博客园  

2011-10-12 17:02:00|  分类: nginx |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

NginX 配置小记

这里使用的是nginx-1.0.6.tar.gz

解压完后默认的配置文件如下,这里对使用到的几个配置做出说明.

view sourceprint?
#user  nobody;
worker_processes  1;
  
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
  
#pid        logs/nginx.pid;
  
  
events {
    worker_connections  1024;
}
  
  
http {
    include       mime.types;
    default_type  application/octet-stream;
  
    #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;
  
    sendfile        on;
    #tcp_nopush     on;
  
    #keepalive_timeout  0;
    keepalive_timeout  65;
  
    #gzip  on;
  
    server {
        listen       80;
        server_name  localhost;
  
        #charset koi8-r;
  
        #access_log  logs/host.access.log  main;
  
        location / {
            root   html;
            index  index.html index.htm;
        }
  
        #error_page  404              /404.html;
  
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
  
        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}
  
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}
  
        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }
  
  
    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;
  
    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
  
  
    # HTTPS server
    #
    #server {
    #    listen       443;
    #    server_name  localhost;
  
    #    ssl                  on;
    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;
  
    #    ssl_session_timeout  5m;
  
    #    ssl_protocols  SSLv2 SSLv3 TLSv1;
    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers   on;
  
    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
  
}

  

Core module

核心配置必须放在配置文件的根部,并且只能出现一次.

user username groupname; #用来定义nginx运行时的用户和组,编译时指定

worker_processes n; #工作进程数,默认为1.如果CPU核心数大于1,推荐增加此数字.推荐为与CPU核心数相同

error_log log/dir/logfile.log; #日志文件地址,可以在以后的块中详细指定

pid pidfile.pid; #pid文件地址,编译时指定


Event module

Event配置放在events块中,用来配置网络机制.其中一些配置对于程序的性能有很大的影响.

worker_connections 1024; #定义worker process能同时处理的连接数,这里如果设置的过大,可能需要用ulimit来调整系统的最大文件打开数.

use epoll; #选择事件模型.编译时指定.


HTTP Core module

HTTP块包含n个server块,每个server块包含n个location块.每个server代表一个服务器,可以用访问的网址/IP或端口来区分.每个location对传入的url进行解析,根据不同的规则将请求分发到不同的物理路径上.

listen [address][:port]; #server监听的地址和端口号

server_name www.server.name; #定义server的name,nginx在收到请求后,会将http头中的Host与server_name进行匹配,第一个符合的server会被选中用来处理请求.server_name可以写多个值(用空格分开),或使用通配符和正则表达式.

root /dir/to/html; #定义网站的根目录.

alias /dir/to/alias/; #只能在location中使用,可以对特定的请求设置特定的目录.别忘了在路径最后要以/结尾.

index index.php index.html; #定义默认的页面,多个页面以空格分开.


Location modifier

location的修饰符有= ~ ~* ^~ @这几个.

= /abcd #完全匹配/abcd,不匹配/abcd/或/abcde,忽略参数,即匹配/abcd?param.

/abcd #无修饰符,匹配以/abcd开头的url.

~ #指后续的串必须是大小写敏感的.

~* #指后续的串大小写不敏感.

^~ #与无修饰符类似,但是一旦匹配就停止继续搜索.

@ #为location指定名称,只能被内部访问.

修饰符的优先级为= > 无修饰符 > ^~ > (~|~*)


匹配正则语法

^ 匹配开始

$ 匹配结束

. 匹配任意字符

[] 匹配一个集合,如[a-z][abc][a-z0-9]

[^ ] 反匹配一个集合

| 或

() 与|一起使用,形成群组.另外()还可以用来获取值,如第一个()的值可以用$1获取,第二个()的值用$2获取

\ 转义,如要匹配. 则要用\.

* 表示0或多次

+ 表示1或多次

? 表示0或1次

{X} X次

{X,Y} X到Y次

 
CodeIgniter的NginX配置

location /index.php/ {
            root /var/www/htdocs/CI;
            fastcgi_index index.php;
            fastcgi_pass 127.0.0.1:9000;
            include fcgi.conf;
            fastcgi_param SCRIPT_FILENAME /var/www/htdocs/CI/index.php;
            fastcgi_split_path_info ^(.+\.php)(.*)$;
            fastcgi_param PATH_INFO $fastcgi_path_info;
}

  

由于CI是单点处理方式,即所有的处理都是通过index.php转发,这里直接截取以/index.php/开头的url进行处理.

需要指定SCRIPT_FILENAME为CI的index.php,并且要设置PATH_INFO.




引文来源  NginX 配置小记 - cloudycliff - 博客园
  评论这张
 
阅读(890)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017