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

nginx配置文件介绍

2017-06-26 16:40 253 查看
nginx.conf:  Base configuration of the application
mine.types: A list of file extensions(扩展) and their associated(关联) mime type(所支持的mine类型列表)
fastcgi_params:Fast CGI-related configuration(fast CGI相关配置)
proxy.conf: Proxy-related configuration(代理相关配置)
sites.conf: Configuration of the websites served by Nginx, also know  as virtual hosts.It's recommended to create separate files for each domain(定义虚拟主机)

main配置段:
event配置段:
server配置段:

正常运行必备的配置:
nginx.conf: 
main配置段:

user USERNAME[GROUPNAME]    指定用于运行worker进程的用户和组; 如:user nginx nginx
pid /PATH/TO/PID_FILE;   指定nginx进程的pid文件路径; 如:pid /var/run/nginx.pid
worker_rlimit_nofile:   指定一个worker进程所能够打开的最大文件描述符数量(有默认值1024)
worker_rlimit_sigpending: 指定每个用户能够发往worker进程的信号数量

优化性能相关的配置:

nginx.conf:

main配置段:

worker_processes: worker进程的个数,通常应该为物理CPU核心数量减1,可以为auto实现自动设定
worker_cpu_affinity   CPUMASK ...: 指定worker进程与cpu绑定(只是绑定,不是独占cpu)   如:worker_cpu_affinity 00000001 00000010 00000100;
worker_priority nice: 指定worker进程优先级【-20 -- 19】,数字越小,优先级越高,默认0

用于调试、定位问题的配置:

nginx.conf

main配置段:

daemon off|on 是否以守护进程的方式启动nginx;
master_process on|off 是否以master/worker模式运行nginx;
error_log /PATH/TO/ERROR_LOG level:  错误日志文件及其级别,出于调试的需要,可以设定为debug,但debug仅在调试时使用了“--with debug”选项时才有效;

nginx.conf :
event配置段:

work_connections: 每个worker进程能够响应的最大并发请求数量;  work_process * work_connections
use [epoil | rgslg | select | poil]:  定义使用的事件模型,建议让nginx自动选择;
accept_mutex [on | off]:  各worker接收用户请求的负载均衡锁,表示用于让多个worker轮流的、序列化的响应新请求;
lock_file /PATH/TO/LOCK_FILE

nginx.conf:

server配置段:

套接字或主机相关的指令:

1.server{}    定义一个虚拟主机

server{

listen [PORT];

server_name[NAME];

root  /PATH/TO/DOCUMENTROOT;

}

...

注意: (1) 基于portlisten 指令监听在不同的端口

(2)基于hostnameserver_name指令指向不同的主机名

2. listen

listen [address]listen [port]

default_server;设置默认虚拟主机。用于基于IP地址,或使用了任意不能对应于任何一个server的name时所返回站点。

ssl:
用于限制只能通过ssl连接服务供应商,只能使用https协议访问。

spdy:
SPDY protocol(speedy) 在编译了spdy模块的情况下,用于支持SPDY协议

http2:
http version 2;

3. server_name NAME[...]

后可跟一个或多个主机名,名称还可以使用通配符和正则表达式(以~开头)

(1)首先做精确匹配:例如 www.magedu.com

(2)左侧通配符:例如 *.magedu.com

(3)右侧通配符:例如 www.magedu.*

(4)正则表达式: 例如 ~^.*\.magedu\.com$

(5)default_server:

4.tcp_nodelay on | off

对keepalive模式下的连接是否使用tcp_nodelay选项(当报文很小时是否等待其他报文一起发送,节省带宽,一般设为off,避免延迟)

5.tcp_nopush on | off

是否启用tcp_nopush(FREEBSE)或tcp_cork(linux),仅在send_file为on时有用

6. send_file on | off 

进程直接在内核空间对多个tpc报文头打包后一起发送,不用到内存空间处理(默认off,建议不一起打包)

路径相关的指令:

7.root

设置web资源的路径映射,用于指明请求url所对应文档目录路径

server {

...

root/data/www/vhost1;

比如:http://www.XXX.com/images/logo.jpg -->/data/www/vhost1/images/logo.jpg

}

server {

...

server_name www.XXX.com

location /images/ {

root /data/imgs/;// 当请求路径为images结尾时资源文档路径为/data/imgs/;

比如:http://www.XXX.com/images/logo.jpg -->/data/imgs/logo.jpg

}

}

8. location [url]{...}:

location @name {...}

功能:允许根据用户请求的url来匹配定义的location,匹配到时,此请求将为相应location块中的配置所处理;简言之,即用于为需要用到专用配置的url提供特定配置。

server {

...

server_name www.XXX.com

root /data/www;

location /admin/ {

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: