nginx主运⾏配置详解(f)#==基础配置==#
user nginx;
#设置运⾏⽤户,当运⾏NGINX时,进程所使⽤的⽤户,则进程拥有该⽤户对⽂件或⽬录的操作权限。
worker_processes 4;
#设置⼯作进程数量,⼀般情况下⼯作进程数等于CPU核⼼数。
worker_cpu_affinity 0001 0010 0100 1000;
#设置⼯作进程绑定CPU核⼼,⼀个⼯作进程使⽤⼀个CPU核⼼,可以减少进程频繁切换导致CPU处理所导致的资源损
#耗。"0001"四位数表⽰CPU有四个核⼼,"1"在第⼏位表⽰使⽤第⼏个核⼼。
worker_rlimit_nofile 102400;
#设置每个⼯作进程可同时打开的⽂件描述符数量。在Linux系统中默认情况下为"1024",我们可以通过
#"ulimit -a |grep 'open files'"命令查看,设置此值可突破并发⽂件数量限制。
error_log /var/log/nginx/error.log error;
#设置错误⽇志⽂件路径,可设置错误⽇志记录的级别。
#错误⽇志级别有:
# debug 调试,将记录详细的⼤量调试信息,适合开发⼈员开启
# info 信息,记录更多的通知信息,不重要的
# notice 通知,记录通知信息,不重要的
nginx 配置文件# warn 警告,记录警告信息
# error 错误,记录错误信息
# crit 严重,只记录⾮常严重的错误信息
pid /run/nginx.pid;
#设置进程⽂件路径,运⾏NGINX会⽣成⼀个PID进程⽂件到指定路径,⽤于保证进程持久化运⾏。
include /usr/share/nginx/modules/*.conf;
#设置包含的其他配置⽂件,⼀些加载NGINX动态模块相关配置⽂件,由"load_moule"指令控制动态模块的加载。
#==事件配置==#
events {
worker_connections 102400;
#设置每个Worker进程可处理的并发连接数量,可根据需求合理配置此值。建议
#与"worker_rlimit_nofile"指令的值⼀致或更⼩。
}
#==核⼼配置==#
http {
include /etc/pes;
#设置还包含其他配置⽂件,“pes”⽂件,记录MIME类型与⽂件后缀的映射关系,MIME类型是互联⽹媒
#体类型的缩写。所以该⽂件是⽤于WEB服务可以识别的、允许⽤户上传的这些后缀相关的媒体⽂件。
default_type text/plain;
#设置默认MIME类型,当⽤户上传⼀个⽂件,⾮“pes”⽂件中记录的后缀⽂件时的处理⽅式,则将该⽂
#件识别默认指定MIME类型的⽂件,"text/plain"表⽰将会保存为".txt"格式的⽂件。
types_hash_max_size 2048;
#设置类型哈希表的⼤⼩,单位为字节。⽤于将MIME类型的数据通过哈希后缓存到内存中,以提⾼对MIME类型映
#射表的读取效率。
charset UTF-8;
#设置字符集编码,防⽌NGINX对于中⽂返回的显⽰乱码。
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
#定义⽇志格式,“main”表⽰该⽇志格式名,⽤于下⽅“access_log”访问⽇志中调⽤
# $remote_addr 远程访问地址
# $remote_user 远程访问⽤户
# $time_local 访问时间
# $request 请求的URL与HTTP协议
# $status 请求状态,成功为200
# $body_bytes_sent 发送给客户端⽂件主机内容⼤⼩
# $http_referer 从哪个页⾯连接访问过来的
# $http_user_agent 客户端浏览器的相关信息
# $http_x_forwarded_for 远程访问地址,与remote_addr相同
sendfile on;
#启⽤或禁⽤"sendfile()"函数的调⽤,"on" or "off","on"表⽰启⽤,"off"表⽰禁⽤。当线程响应
#时,"sendfile()"函数会报告线程数据不在内存中⽽是在硬盘中,则线程直接去硬盘拿到响应数据直接传送
#给⽤户,⽽⽆需调⽤内存去硬盘拿响应数据,省去了调⽤内存的步骤,在⼩型WEB项⽬中可以提⾼请求响应效
#率,若是重量级WEB项⽬,为了平衡磁盘IO则不建议开启。我们也可以将此指令称之为⾼效传输模式。
tcp_nopush on;
#启⽤或禁⽤TCP_NOPUSH套接字选项,"on" or "off","on"表⽰启⽤,启⽤此项的前提是必须开
#启"sendfile","off"表⽰禁⽤。有时候在传输⼀个响应数据时,可能会产⽣多个⼩块数据包传出,可能这个
#⼩块数据包头部⼤⼩为30字节,⽽真正数据信息只有1字节,在⾼并发环境下会导致⽹络拥塞、带宽不够⽤问
#题。开启此项则传出的数据包会积累⼀下在传出,可以防⽌⽹络拥塞,减少带宽的占⽤。
tcp_nodelay on;
#启⽤或禁⽤TCP_NODELAY套接字选项,"on" or "off","on"表⽰启⽤,"off"表⽰禁⽤。此项与
#"tcp_nopush"的功能刚好相反,若开启此项则对于⼩块数据包不等待⽴即传输,有时候⼀个WEB应⽤期望发
#送⼩块数据时,则建议开启,当“tcp_nopush”和“tcp_nodelay”同时开启时,NGINX会平衡这两个功能的使
#⽤。
keepalive_timeout 75s;
#设置保持客户端连接活跃状态的超时时间,单位为秒。
send_timeout 60s;
#设置服务器将响应发送给客户端的超时时间,单位为秒。
include /etc/nginx/conf.d/*.conf;
#设置还包含其他配置⽂件,我们可以将⼀些其他配置分离到另外⼀个⽂件中处理,避免主配置⽂件因为配置太
#多导致混乱不⽅便管理,⽐如下⾯的"server {}",在NGINX中我们可以配置多个"server {}"则我们可以将
#每个"server {}"分离到另外⼀个配置⽂件中,即⼀个配置⽂件对应⼀个WEB站点。
#==WEB站点配置==#
server {
listen 80 default_server;
#设置监听IPV4的地址与端⼝,地址为空表⽰监听所有,“default_server”即默认服务器,DNS映射⼀个
#域名到该主机,但是当⽤户访问的这个域名与这些WEB虚拟主机绑定的域名都不匹配的情况下,默认由监 #听“default_server”的虚拟主机呈现内容。
listen [::]:80 default_server;
#设置监听IPV6的地址与端⼝。
server_name st;
#设置域名绑定,绑定⼀个域名。
access_log /var/log/nginx/static_access.log main;
#设置访问⽇志⽂件路径,⽤于记录每个访问请求,“main”调⽤上⾯⽇志格式
location / {
#设置访问位置(URI),即⽤户访问的URL的尾部部分。当匹配到请求的URI时,则呈现由"{ }"中定义的 #内容。location指令针对于匹配URI可以嵌⼊正则表达式,实现⼀些⾼级应⽤,详细⽤法请参考《HTTP
#配置⾼级指令》。
root /usr/share/nginx/html;
#设置WEB应⽤根⽬录。
index index.html;
#设置默认⾸页⽂件,当⽤户访问域名或IP地址是⾃动索引呈现该⽂件中的内容,该⽂件在若为相对路 #径则会在WEB应⽤根⽬录下。
}
error_page 404 /404.html;
#当匹配到响应代码,则将请求重定向到指定的URI。
location = /40x.html {
#匹配上⾯重定向的URI,则呈现相关响应代码的会呈现给⽤户的内容。若"{}"为空则返回默认页⾯。
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论