项目实践、nginx服务做反向代理配置说明

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

本文章介绍了本人工作过程中使用的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 off

gzip_min_length-当返回内容大于此值时才会使用gzip进行压缩,以K为单位,当值为0时,所有页面都进行压缩

语法: gzip_min_length length;
默认:gzip_min_length 20;
配置模块: http, server, location

gzip_buffers-设置用于处理请求压缩的缓冲区数量和大小。比如32 4K表示按照内存页(one memory page)大小以4K为单位(即一个系统中内存页为4K),申请32倍的内存空间。建议此项不设置,使用默认值

语法: gzip_buffers number size;
默认: gzip_buffers 32 4k|16 8k;
配置模块: http, server, location

gzip_http_version-用于识别http协议的版本,早期的浏览器不支持gzip压缩,用户会看到乱码,所以为了支持前期版本加了此选项。默认在http/1.0的协议下不开启gzip压缩。

语法: gzip_http_version 1.0 | 1.1;
默认: gzip_http_version 1.1;
配置模块: http, server, location

gzip_comp_level-设置gzip压缩级别,级别越底压缩速度越快文件压缩比越小,反之速度越慢文件压缩比越大

语法: gzip_comp_level level;
默认: gzip_comp_level 1;
配置模块: http, server, location

gzip_types-设置需要压缩的MIME类型,如果不在设置类型范围内的请求不进行压缩

语法: gzip_types mime-type ...;
默认: gzip_typestext/html;
配置模块: http, server, location

gzip_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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jiang0615csdn

你对鼓励是我最大的动力来源

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值