首页 > 代码库 > 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