导图社区 Nignx
Nginx 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。
编辑于2024-01-19 10:26:42Nignx
使用
命令
-c
指定配置文件 默认路径--conf-path
-p
指定nginx安装目录
-g
临时指定一些全局配置项,以使新的配置项生效
nginx -g "pid /var/nginx/test.pid"
约束条件:
配置项不能与默认路径下nginx.conf 冲突,否则无法启动
以-g方式启动的nginx服务执行其他命令时,需要把 -g带上,否则可能出现配置项不匹配的情况
-t
测试配置文件是否有错误
-s
发送信号:stop, quit, reopen, reload
配置
调试经常和定位问题
daemon on | off;
是否守护进程方式运行
master_process on | off;
是否以master/woker方式工作
off; master进程自身处理请求
error_log /path/file level;
日志设置
debug_points [stop | abort]
stop: 到代码调试点发出SIGSTOP信号以用于调试
abort: 产生一个coredump文件,可以使用gdb查看信息
debug_connection [IP | CIDR]
这个配置项实际上属于事件类配置 events { } 才有效
worker_rlimit_core size;
限制coredump核心转储文件的大小
working_directory path;
指定coredump文件生成目录
注意: 如果日志级别设定到debug, 必须configure 编译时加入--with-debug配置项
正常运行的配置项
env VAR|VAR=VALUE
定义环境变量
include /path/file;
嵌入其他配置文件
pid path/file;
pid文件的路径
user username [groupname];
nginx worker进程运行的用户及用户组
worker_rlimit_nofile limit;
一个worker进程可以打开的最大文件句柄数
worker_rlimit_sigpending limit;
限制信号队列
优化性能的配置项
worker_processes number
nginx worker 进程个数;最优个数为CPU内核个数;
worker_cpu_affinity cpumask [cpumask...]
绑定nginx worker 进程到指定cpu内核;仅支持linux系统
ssl_engin device
SSL硬件加速;openssl engine -t
timer_resolution t
系统调用gettimeofday的执行频率
worker_priority nice
nginx worker 进程优先级设置
事件类配置项 events
accept_mutex [on| off]
是否打开accept锁;负载均衡锁
lock_file path/file;
lock文件的路径
accept_mutex_delay Nms;
使用accept锁后到真实建立连接之间的延迟时间
multi_accept [off | no]
批量建立新连接
use [kqueue | rtsig | epoll | /dev/poll | select | poll | eventport]
选择事件模型
worker_connection number;
每个worker的最大连接数
http {}
server {}
location [ = | ~ | ~* | ^~|@] /uri/ {}
root path
以root方式设置资源路径
alias path
以alias方式设置资源路径
index file ...
访问首页
error_page code [ code...] [ = | =answer-code] uri | @named_location
根据HTTP返回码重定向页面
recursive_error_page [ off | on]
是否允许递归使用error_page
try_files path1 [path2] uri
按照顺序尝试获取有效 path,如全部无效返回uri
listen address:port [ default | default_server | backlog=num | rcvbuf=size | sndbuf=size | accept_filter=filter| deferred | bind | ipv6only=[on|off] | ssl]
server_name name [...]
主机名称
server_names_hash_bucket_size size
nginx 使用散列表来存储server name;设置每个散列桶占用内存大小
server_names_hash_max_size size
散列表的冲突率
server_name_in_redirect on | off;
重定向主机名称处理
nginx.conf
内存及磁盘资源
client_body_in_file_only off | clean | on
用于调试,定位问题
client_body_in_single_buffer off | on
请求中HTTP包体一律存储到内存buffer中,超出client_body_buffer_size 写入磁盘文件中
client_header_buffer_size size
nginx接受请求中HTTP header部分时分配内存buffer大小
large_client_header_buffers number size
存储超大HTTP head的 buffer个数和每个buffer大小
client_body_buffer_size size
存储HTTP包体的内存buffer大小
client_body_temp_path dir_path [ level1 [ level2 [ level3 ]]]
HTTP包体的临时存放目录
connection_pool_size size
连接内存池大小
request_pool_size size
每个请求分配内存池大小
网络连接配置
client_header_timeout time
读取HTTP header 的超时时间
client_body_timeout time
读取HTTP body 的超时时间
send_timeout time
发送响应超时时间
reset_timeout_connect off | on
连接超时后是否重置连接
lingering_close on | off | always
控制nginx关闭用户连接方式
lingering_time time
lingering_close 启用后,对于上传大文件很有用
lingering_timeout time
lingering_close 生效后,在关闭连接前,检查数据
keepalive_disable [ mise6 | safari | none] ...
对某些浏览器禁用keepalive功能
keepalive_timeout time
keepalive 超时时间
keepalive_requests n
一个keepalive连接上允许承载的请求最大数
tcp_nodelay on | off
确定对keepalive连接是否使用TCP_NODELAY
tcp_nopush off | on
打开 tcp_nopush, 在发送响应时把整个响应包头放到一个TCP包中发送
MIME类型设置
types {...}
MIME type 与文件扩展的映射
default_type MIME-type
默认使用HTTP header Content-Type
types_hash_bucket_size size
每个散利痛占用内存大小
types_hash_max_size size
散列表冲突率
对客户端请求的限制
limit_except method ... { ... }
按HTTP方法限制请求
分支主题
分支主题