Nginx学习笔记(三):核心配置文件详解
一、全局配置
1.设置进程用户
user root;
解释说明:这里的用户指的是Linux中的用户,会涉及nginx操作目录或文件的权限
2.设置工作进程数
worker_processes 1;
解释说明:一般来说CPU有几个就将工作进程数设置为几个
3.设置日志级别
#日志级别:debugger,info,notice,warn,error #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info;
4.设置pid文件的存放路径
pid /usr/local/nginx/logs/nginx.pid;
解释说明:pid顾名思义,就是进程的id,每一个nginx都是一个进程,而且每个进程都有一个全局唯一的id,由于进程是无法检测到其他进程的,因此就需要用一个pid文件保存Nginx的进程号,用于传递信息。当Nginx启动的时候,会根据pid的存放路径查找pid文件,如果检测到路径中存在pid文件并且pid文件指向的进程存在,则说明nginx进程已经存在,启动服务时将会报错。若pid文件指向的进程不存在,则会启动nginx并把pid写入nginx.pid文件中(如果没有pid文件,会自动创建一个并写入)。简单来说,pid文件的作用是防止Nginx服务被启动多次。
二、events工作模式配置
设置工作模式和连接数
events { # 默认使用epoll use epoll; # 每个工作进程worker允许连接客户端的最大连接数 worker_connections 10240; }
三、http网络传输配置
1.引入外部配置
include mime.types;
2.设置日志格式
#log_format main $remote_addr - $remote_user [$time_local] "$request" # $status $body_bytes_sent "$http_referer" # "$http_user_agent" "$http_x_forwarded_for";
3.开启高效文件传输模式
sendfile on; tcp_nopush on;
sendfile启用后才能使用tcp_nopush,tcp_nopush是指当数据包累积一定大小后才发送,这样有助于解决网络堵塞,提高了效率。
4.设置连接客户端的超时时间
# 连接客户端的超时时间 keepalive_timeout 65;
通过设置超时时间,可以保证客户端多次请求服务端的时候不会重复建立新的连接,节约资源损耗。
5.开启压缩功能
开启压缩,会对传输的内容进行压缩,提高传输效率,节约带宽
#开启gzip压缩功能 gzip on; #限制最小压缩,小于1字节文件不会压缩 gzip_min_length 1; #定义压缩的级别(压缩比,文件越大,压缩越多,但是CPU使用会越多) gzip_comp_level 3; #定义压缩文件类型 gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png application/json;
四、server虚拟主机配置
1.配置监听端口号
listen 80;
2.配置服务名
server_name localhost;
3.配置路由
location / { root html; index index.html index.htm; }
location的匹配规则:
(1)空格:默认匹配,普通匹配
location / { root /home; }
(2)=:精确匹配
location = /img/face1.png { root /home; }
(3) ~*:匹配正则表达式,不区分大小写
#符合图片的显示 location ~ .(GIF|jpg|png|jpeg) { root /home; }
(4) ~:匹配正则表达式,区分大小写
#GIF必须大写才能匹配到 location ~ .(GIF|jpg|png|jpeg) { root /home; }
(5) ^~:以某个字符路径开头
location ^~ /static/img { root /home; }
4.配置错误页面
error_page 500 502 503 504 /50x.html; location = /50x.html { root html; }
上一篇:
Java架构师技术进阶路线图