首页 > 代码库 > nginx配置文件详解

nginx配置文件详解

nginx配置文件:

user nginx;

worker_processes 1; ##启动进程的个数(进程个数并不是并发越多越好。一般来说,进程个数与CPU个数相等。如果进程个数多于CPU个数,要进行上下文切换,会耗时。)

events {

  worker_connections 1024;

} ##一个进程并发请求数


nginx不仅可以做网页服务器,还可以做nginx反向代理和mail代理。

在如下行进行配置:


http {

   include mime.types;

   default_type application/cetet-stream;

   #log_format main  ‘$remote_addr - $remote_user [$time_local] "$request"‘ 

   #                 ‘$status $body_bytes_sent "$http_referer"‘

   #                 ‘"$http_user_agent" "$http_x_forwarded_for"‘;  

   #remote_addr 客户端ip remote_user远程用户 time_local本地时间 request用户请求资源 status状态码 body_bytes_sent发送的字节数 http_referer访问网页的来源链接 http_user_agent浏览器类型 http_x_forwarded_for缓存服务器软件

  access_log /var/log/nginx/access.log main;日志的存放路径,使用main格式

  sendfile on;

  keepalive_timeout 65;使用保持连接

  #gzip on;网页文件压缩以后再发送


server {

    listen       80 default_server;

    server_name  localhost;主机名称


    #charset koi8-r;


    #access_log  logs/host.access.log  main;


    location / { 是http://172.16.100.1/的根目录

        root   /usr/share/nginx/html;相对于网页文件存放位置的相对路径,最好使用绝对路径

        index  index.html index.htm;网页主页面

    }


    error_page  404              /404.html;

    location = /404.html {

        root   /usr/share/nginx/html;

    }


listen配置的格式:(只能在server中进行设置)

listen address:port[ default [ backlog=num | rcvbuf=size接收缓存大小 | sndbuf=size 发送缓存大小 | accept_filter=filter | deferred | bind | ssl 只能使用443端口]]

listen 127.0.0.1:8000;

listen 127.0.0.1;

listen 8000;

listen *:8000;

listen localhost:8000;


location配置的格式:(只能在server中进行设置)

location [=|~|~*|^~|@] /url/ {...}

= 精确匹配,所请求的必须是特定的文件

~ ~* 正则表达式,url是正则表达式patter ~区分字母大小写 ~*不区分字母大小写

^~ 不使用正则表达式,只做逐个字符匹配

@ 转向其他代理服务器

优先级:= ^~ (~ ~*)


例子:

= 只能匹配/

location = / {

  #matches the query / only.

  [ configuration A ]

}


/ 可以匹配所包含的目录

location / {

  #matches any query, since all queries begins with /, but regular expresions and any longer conventional blocks will be matched first.

  [ configuration B ]

}


^~ 匹配以后面URL定义起始的目录

location ^~ /images/ {

  #matches any query beginning with /images/ and halts searching, so regular expressions will not be checked.

  [ configuration C ]

}


~* 匹配正则表达式

location ~* \.(gif|jpg|jpeg)$ {

  #matches any request ending in gif, jpg, or jpeg. However, all requests to the /images/ directory will be handled by Configuration C.

  [ configuration D ]

}


Example requests:

 * / --> configuration A

 * /documents/document.html --> configuration B

 * /images1.gif --> configuration C

 * /documents/1.jpg --> configuration D


alias 设定别名,在location中定义

语法:alias file-path|directory-path

location / {

  root /spool/w3;

}

location /bbs/ {

  alias /spool/bbs/;

}


index 设置主页面


autoindex 如果访问时候没有主页面,就列出该目录下的所有页面

location / {

  autoindex on;

}


AccessModule 访问控制列表

location / {

  deny 192.168.1.1;

  allow 192.168.1.0/24;

  allow 10.1.0.0/16;

  deny all;

}


开启nginx状态监控的功能;

location /nginx status {

  stub_status on;

  access_log off;关闭访问日志

}

Active connections:2 处于活动状态的连接

server accepts handled requests

 125202 125202 125254 

(已经接入的连接数 已经处理过的连接数 正在处理的连接数 )

Reading:1 Writing:1 Waiting:0

(读取请求头 处理过请求,并将结果发送给客户端 尚处于保活状态的连接数)


启动基于用户的认证:

server {

  server_name www.magedu.com;

  ...

  location / {

    auth_basic "Restricted";

    auth_basic_user_file /etc/nginx/.htpasswd;

    ...

  }

}

#htpasswd -cm /etc/nginx/.htpasswd jerry


本文出自 “运维工作笔记” 博客,请务必保留此出处http://yyyummy.blog.51cto.com/8842100/1433093