原文地址: Geekinns
Nginx配置文件组成部分
第一部分: 全局快
从配置文件开始到events块之间的内容
,主要设置一些影响nginx服务器整体运行的配置指令
,主要包括配置运行Nginx服务器的用户(组)、允许生成的 worker_process数,进程PID存放路径、日志存放路径和类型以及配置文件的引入等。
第二部分: events块
events块涉及的指令主要影响**Nginx服务器与用户的网络连接
**,常用的设置包括是否开启对多worker_process下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个worker_process可以同时支持的最大连接数等。
第三部分: http块
此部分为Nginx服务器配置中最频繁的部分,代理、缓存和日志自定义等绝大多数功能和第三方模块的配置都在这里,http块包括http全局快,server块
Ⅰhttp全局快
http全局快配置的指令包括文件引入,MIME-TYPE定义,日志自定义,连接超时时间,单链接请求数上限等。
Ⅱ server块
此部分和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机时完全一样的,该技术的产生是为了节约互联网服务器硬件成本。
每个http块可以包括多个server块,每个server块就相当于一个虚拟主机。
server块分为全局server块,以及可以同时包含多个location块
1.全局server块
配置虚拟主机的相关参数
2.location块
配置请求的路由,以及各种页面的处理情况
配置文件详解
worker_processes 2; #允许生成的进程数
error_log logs/error.log info; #全局错误日志定义类型
pid /nginx-1.13.7/nginx.pid; #记录主进程ID的文件
worker_rlimit_nofile 65535;
events {
multi_accept on; #设置一个进程是否同时接受多个网络连接
worker_connections 666; #连接数上限,单个进程允许的最大连接数
}
#设定http服务器,利用它的反向代理功能提供负载均衡支持
http {
include mime.types; #文件扩展名与文件类型映射表
default_type application/octet-stream; #默认文件类型,默认为text/plain
#access_log off; #取消服务日志
#日志格式
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 记录了哪些用户,哪些页面以及用户浏览器、ip和其他的访问信息
access_log log/access.log myFormat; #combined为日志格式的默认值
sendfile_max_chunk 100k; #每个进程每次调用传输数量的最大值
keepalive_timeout 75; #连接超时时间,默认为75s
upstream mysvr {
server 127.0.0.1:7878;
server 192.168.10.121:3333 backup; #热备
}
error_page 404 https://www.baidu.com; #错误页
server {
keepalive_requests 120; #单连接请求上限次数。
listen 80; #监听端口
server_name www.geekinns.cn; #监听地址(多个时用空格隔开)
location ~*^.+$ { #请求的url过滤
#root path; #根目录
#index vv.txt; #设置默认页
proxy_pass http://mysvr; #请求转向mysvr定义的服务器列表
deny 127.0.0.1; #拒绝的ip
allow 172.18.5.54; #允许的ip
}
}
# 以下为443端口配置
# server {
# listen 443; #SSL的访问端口号为 443
# server_name www.geekinns.cn; #填写绑定证书的域名
# root /home/hexo; #你的站点目录
#
# ssl_certificate /home/SSL/1_www.geekinns.cn_bundle.crt; #证书文件路径
# ssl_certificate_key /home/SSL/2_www.geekinns.cn.key; #私钥文件路径
# ssl_session_timeout 5m;
# ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用的协议
# ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; #配置加密套件
# ssl_prefer_server_ciphers on;
#
# location / {
# index index.html;
# }
# }
}