默认nginx服务器配置文件都存放在安装目录conf中,主配置文件名为nginx.conf.
默认nginx.conf在/usr/local/nginx目录下,上次编译安装nginx主配置文件存放在/etc/nginx下。
安装编译:http://magine356wj.blog.51cto.com/2664956/1677064
下面是关于nginx.conf的一些注释
#####################全局块##############################################
#user nobody; #使用的用户和组,默认是nobody,编译时设置成nginx
worker_processes 1; #指定工作进程数,通常有几颗CPU用在nginx上就设置对应数字
#error_log logs/error.log; #可以使用[debug | info| notice| warn | error | crit ]参数
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid; #指定pid存放路径
################events事件模块###########################################
events {
worker_connections 1024; 每个worker的最大连接数
}
######################http模块###########################################
http {#以下指令在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 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
nginx.conf一共由三部分组成,分别为core(全局),events块,http块。在http块中,又包含http 全局块,多个server块。每个server块又包含server全局和多个location1.在同一配置中嵌套的配置块,各个之间不存在次序关系。
一、core:
全局块是默认配置文件从开始到events块之间的一部分内容,主要是设置一些影响Nginx服务器整体运行的配置指令。这些指令的作用域是Nginx服务全局。
user
语法: user user[group]
缺省值:nobody nobody
指定nginx worker进程运行用户,默认是nobody账号
error_log
语法: error_log file [ debug | info | notice | warn | error | crit ]
缺省值: ${prefix}/logs/error.log
制定错误日志的存放位置和级别。
pid
语法: pid file
进程id存储文件。可以使用 kill -HUP cat /var/log/nginx.pid/ 对Nginx进行配置文件重新加载。
worker_processes
语法: worker_processes number
缺省值: 1
指定工作进程数。nginx可以使用多个worker进程。
将number改为3,再执行ps ax | grep nginx,就可以看到除了主进程master process,已经生成了3个worker process。
二、events块
events块涉及的指令主要影响Nginx服务器与用户的网络连接。
use epoll; #说明使用哪种事件模型,默认为epoll,可以不写。
worker_connections number; #主要用来设置允许每一个worker process同时开启的最大连接数。
clients = worker_connections * work_process,根据实际情况设置worker_connections。
三、http模块:
http模块中指令包含文件引入,MIME-Type定义,日志定义,是否使用sendfile传输文件,连接超时时间,单链接请求数上限等。
include mime.types; default_type application/octet-stream; 常用的浏览器可以显示HTML,XML,GIF及Flash等种类繁多的文件,媒体资源等。浏览器区分这些资源需要使用MIME Type。default_type配置了用于处理前端请求的MIME类型。
Nginx服务器支持对服务日志的格式,大小,输出等进行配置。
access_log 指定路径
log_format 指定日志格式
具体参数可以查阅:http://nginx.org/en/docs/http/ngx_http_log_module.html
sendfile on | off; 开启或关闭sendfile
keepalive_timeout timeout,默认是65s。
gzip on 是否开启gzip压缩,默认禁止
四、server,location模块
location [ = | ~ | ~* | ^~ ] uri { ... }
= ,要求字符串与uri严格匹配
~ ,用正则,区分大小写
~*,用正则,不区分大小写
^~,不做模式匹配
优先级:
第一是=;
第二是~;
最后是不带任何符号的/
注:有关Http模块,server,location只是初略标注。虚拟主机,rewrite等功能,会在后续博客写出。
转载于:https://blog.51cto.com/magine356wj/1677521