您的位置:首页 > 运维架构 > Nginx

nginx的基本配置

2017-05-15 22:35 288 查看
以下是看完Nginx入门教程之后的学习记录.

user www www;
#顶层配置信息管理服务器级别行为
worker_processes 1;

error_log /data/wwwlogs/error_nginx.log crit;
pid /var/run/nginx.pid;
worker_rlimit_nofile 51200;ent

#event指令与事件模型有关,配置处理连接有关信息
events {
use epoll;
worker_connections 51200;
multi_accept on;
}

#http指令处理http请求
http {
#引入mime type映射(reponse头里指定了mime类型是什么,是通过的文件扩展名和响应类型来实现的.)
include mime.types;
#default_type指定请求的文件类型在映射表里不存在的情况(默认使用的mime类型,此处为二进制类型).
default_type application/octet-stream;

sendfile on;
#tcp_nopush on;

keepalive_timeout 65;

######################## default ############################
#server表示一个虚拟主机,一台服务器可以配置多个虚拟主机
server {
#监听的端口号
listen 80;
#识别的域名(根据servername的不同来判断请求交给哪个server来处理)
server_name _;
#一个关键设置,与url参数乱码问题有关
charset utf-8;
access_log /data/wwwlogs/access_nginx.log combined;
root /data/wwwroot/default;
index index.html index.htm index.php;

#location表达式.
#syntax:location [=|~|~*|^-|@] /url/{...}
#分为两种匹配模式,普通字符串匹配,正则匹配
#无开头引导字符或以=开头表示普通字符串匹配
#以~或~*开头表示正则匹配,~*表示不区分大小写匹
#多个location时匹配规则
#总是以先普通后正则的原则,只是别URI部分,例如请求为/test/1/abc.do?arg=xxx
#1.先查找是否=开头的精确匹配,即location = /test/1/abc.do{...}
#2.再查找普通匹配,以最大前缀为规则,如以下两个location
#    location /test/{...}
#    location /test/1/{...}
#匹配最后一项
#3.匹配到一个普通格式之后,搜索并未结束,而是暂存当前结果,并继续再搜索正则模式
#4.在所有正则模式location中找到第一个匹配项后,一次匹配项为最终结果
#  所以正则匹配项匹配规则受定义前后顺序的影响,但不普通规则不会
#5.如果未找到正则匹配项,则以3中缓存的结果为最终结果
#6.如果一个匹配都没有,返回404

#location = / {...}与location {...}的差别
#前一个是精确匹配,只响应/请求,所有/xxx类请求不会以前缀匹配形式匹配到它
#而后一个正相反,所有请求必然都是以/开头,所以没有其它匹配结果时一定会执行到它

#location ^~ / {...} ^~的意思是非正则,表示匹配到此模式之后不再继续进行这则搜索
#所以如果有这样的配置,相当于你关闭了正则匹配
#因为一个请求在普通匹配规则下没有得到其它普通匹配结果时,最终匹配到这里
#而这个^~指令又相当于不允许正则,相当于匹配到此为止  /test/abc.jsp
location /nginx_status {
stub_status on;
access_log off;
#allow all; 允许请求
#deny all; 允许请求,返回403
}
location ~ [^/]\.php(/|$) {
#fastcgi_pass remote_php_ip:9000;
fastcgi_pass unix:/dev/shm/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
expires 30d;
access_log off;
}
location ~ .*\.(js|css)?$ {
expires 7d;
access_log off;
}
location ~ /\.ht {
deny all;
}
}

#定义各类错误页面
error_page 404   /404.html;

error_page 500 502 503 504 /50x.html
location = /50x.html{
root html;
}

#类似于变量定义
#error_pagr 403 http://www.zhishe.pub 这种定义不允许,所以利用@实现(其具体作用是出现403错误的时候,不是指向具体的某个页面,而是指向里面定义的一个网站.)
error_page 403 @page403;
location @page403{
proxy_pass http://www.zhishe.pub; }
########################## vhost #############################
include vhost/*.conf;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  nginx