本文章介绍了本人工作过程中使用的nginx服务作为反向代理的配置,并针对很多配置了相关的说明及解析的,重要信息是进行了过滤,可以给大家进行参考使用。
很多配置仅供参考的,不做实际的生产环境使用的!!!
配置文件是nginx.conf,具体配置内容如下:
user nginx nginx;
#Nginx worker 进程运行的用户及用户组
语法:user username [groupname] 默认:user nobody nobody作用及注意事项:
user 用于设置 master 进程启动后,fork 出的 worker 进程运行在哪个用户和用户组下。
当按照“user username;”设置时,用户组与用户名相同。
若用户在 configure 命令执行时使用了参数 --user=username 和 --group=groupname,此时 nginx.conf 将使用参数中指定的用于和用户组。
worker_processes 2;
worker_cpu_affinity 01 10;
优化性能的配置项
Nginx worker 进程个数
语法:worker_processes number; 默认:worker_processes 1;在 master/worker 运行方式下,定义 worker 进程的个数。
绑定 Nginx worker 进程指定的 CPU 内核
语法:worker_cpu_affinity cpumask [cpumask...] 例子: worker_processes 4; worker_cpu_affinity 1000 0100 0010 0001; 注:这里几核就是几位二进制的数字的,2位就是01 10的,最多是8位的,切记,
error_log logs/error.log;
error 日志的设置
语法:error_log /path/file level; 默认:error_log logs/error.log error;设置 error 日志的路径和级别。路径设置为 /dev/null,这样就不会输出任何日志了,这也是关闭 error 日志的唯一手段;路径也可以是 stderr,这样日志输出到标准错误文件中。
level 是日式的输出级别,取值范围是 debug、info、notice、warn、error、crit、alert、emerg,从左到右级别依次增大。
pid /app/nginx/conf/nginx.pid;
pid 文件路径
语法:pid path/file; 默认:pid logs/nginx.pid;保存 master 进程 ID 的 pid 文件存放路径。
worker_rlimit_nofile 65535;
是nginx的work工作进程打开最多文件描述符数目的限制
语法:worker_rlimit_nofile number;
events {
use epoll;
worker_connections 10240;
}
use-选择时间模型
语法:use [kqueue | rtsig | epoll | /dev/poll | select | poll | eventport]; 默认:Nginx 会自动使用最适合的事件模型。worker_connections-每个 worker 的最大连接数
定义每个 worker 进程可以同时处理的最大连接数。
语法:worker_connections number;
如下是http模块的内容,这里比较分散的解析了,完整的配置最后会拿出来的。
http {
include mime.types;
default_type application/octet-stream;
server_tokens off;
gzip on;
gzip_min_length 1k;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/css text/xml application/javascript application/atom+xml application/rss+xml text/plain appl
ication/json application/x-javascript application/xml text/javascript;
gzip_disable "MSIE [0-6]\.";
gzip_vary on;
(1)include-嵌入其他配置文件
语法:include /path/file路径参数既可以是绝对路径,也可以是相对路径。参数的值可以是一个明确的文件名,也可以是含有通配符*的文件名,同时可以嵌入多个配置文件。
这里的是嵌入了types的文件
(2)default_type-默认 MIME type
语法:default_type MIME-type; 默认:default_type text/plain; 配置块:http server location当找不到相应的 MIME type 与文件扩展名之间的映射时,使用默认的 MIME type 作为 HTTP header 中的 Content-Type。
(3)server_tokens-返回错误页面时是否在 Server 中注明 Nginx 版本
语法:server_tokens on | off; 默认:server_tokens on; 配置块:http server location(4)gzip-压缩配置
nginx服务是否采用gzip压缩的形式来发送数据
语法:gzip on | off 默认:gzip offgzip_min_length-当返回内容大于此值时才会使用gzip进行压缩,以K为单位,当值为0时,所有页面都进行压缩
语法: gzip_min_length length; 默认:gzip_min_length 20; 配置模块: http, server, locationgzip_buffers-设置用于处理请求压缩的缓冲区数量和大小。比如32 4K表示按照内存页(one memory page)大小以4K为单位(即一个系统中内存页为4K),申请32倍的内存空间。建议此项不设置,使用默认值
语法: gzip_buffers number size; 默认: gzip_buffers 32 4k|16 8k; 配置模块: http, server, locationgzip_http_version-用于识别http协议的版本,早期的浏览器不支持gzip压缩,用户会看到乱码,所以为了支持前期版本加了此选项。默认在http/1.0的协议下不开启gzip压缩。
语法: gzip_http_version 1.0 | 1.1; 默认: gzip_http_version 1.1; 配置模块: http, server, locationgzip_comp_level-设置gzip压缩级别,级别越底压缩速度越快文件压缩比越小,反之速度越慢文件压缩比越大
语法: gzip_comp_level level; 默认: gzip_comp_level 1; 配置模块: http, server, locationgzip_types-设置需要压缩的MIME类型,如果不在设置类型范围内的请求不进行压缩
语法: gzip_types mime-type ...; 默认: gzip_typestext/html; 配置模块: http, server, locationgzip_disable-通过表达式,表明哪些UA头不使用gzip压缩
语法: gzip_disable regex ...; 默认: — 配置模块: http, server,locationThis directive appearedinversion 0.6.23.gzip_vary-增加响应头”Vary: Accept-Encoding”告诉接收方发送的数据经过了压缩处理,开启后的效果是在响应头部添加了Accept-Encoding:gzip,这对于本身不支持gzip压缩的客户端浏览器有用。
语法: gzip_varyon |off; 默认: gzip_vary off; 配置模块: http, server, location
注:继续在http模块下的配置
server_names_hash_bucket_size 128;
client_header_buffer_size 1k;
large_client_header_buffers 4 8k;
client_max_body_size 6G;
client_body_timeout 5;
client_header_timeout 20;
open_file_cache max=65535 inactive=20s;
open_file_cache_valid 30s;
open_file_cache

本文详述了Nginx作为反向代理的配置,包括worker进程、事件模型、错误日志、HTTP模块、FastCGI模块、代理缓存、SSL配置、限速与超时设置。讲解了如user、worker_processes、worker_cpu_affinity、gzip、proxy_pass等关键参数的用法,还涵盖了日志格式、权限控制与服务器集群设置,为读者提供了全面的参考。
最低0.47元/天 解锁文章
4458

被折叠的 条评论
为什么被折叠?



