当前位置: 首页 > news >正文

Ubuntu环境 nginx.conf详解(二)

1、nginx.conf 结构详解:

http 块:用于配置 HTTP 服务器的相关设置,包括处理 HTTP 和 HTTPS。

stream 块:用于配置 TCP/UDP 代理服务器,适用于需要进行四层负载均衡的情况。

...            # 全局块
events {...}   # events块
http {						  # http块...   					  # http全局块server { 					  # server块...       				  # server全局块location [PATTERN] {...}  # location块location [PATTERN] {...}  # location块}server { ... } 			  # server块
}stream {				      # stream块server { ... } 			  # server块
}

2、详细nginx.conf详解:

1、全局块:

#定义 用户和用户组,默认为 nobody,若配置为 user nobody nobody, 则所有用户都能启动 nginx 进程
user myUsr myGroup;# 工作进程数可设置为CPU的核心数
worker_processes  1;# 进程文件路径
pid /user/local/nginx/nginx.pid;# 日志路径和日志级别,日志级别有:debug|info|notice|warn|error|crit|alert|emerg;
error_log logs/error.log debug;

2、events 块:

events {# 设置网路连接序列化是为了防止惊群现象发生,默认为 on;accept_mutex on;# 是否同时接受多个网络连接指令默认值为 off;multi_accept on;# 事件驱动模型的可选项有:select|poll|kqueue|epoll|resig|/dev/poll|eventport;use epoll;# 最大连接数worker_connections  1024;
}

 3、http 全局块:

子模块相同配置,可统一配置在 http全局 中。

http {# 文件扩展名与文件类型映射表在 nginx/conf 下include mime.types;# 默认文件类型的默认值为 text/plain;default_type  application/octet-stream;# 是否开启服务日志的默认值为 on,开启了之后需要配置 access_log 路径;access_log off;# 自定义服务日志格式log_format myLogFormat '$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for';# 设置日志的格式access_log log/access.log myLogFormat;# sendfile 指令指定 nginx 是否调用 sendfile 函数来输出文件,减少用户空间到内核空间的上下文切换;对于普通应用设为 on,如果用来进行下载等应用磁盘 IO 重负载应用,可设置为 off,以平衡磁盘与网络 I/O 处理速度,降低系统的负载;sendfile on;# 每个进程每次最大传输值,指令的默认为 0,表示不设上限;sendfile_max_chunk 100k;# 长连接超时时间,单位是秒,这个参数很敏感,涉及浏览器的种类、后端服务器的超时设置、操作系统的设置;长连接在请求大量小文件的时候,可以减少重建连接的开销;但如果上传大文件时在设置的超时时间内没上传完成会导致失败,如果设置时间过长,用户又多,长时间保持连接会占用大量资源;keeplive_timeout 100;# 响应客户端的超时时间,仅限于两个连接活动之间的时间,如果超过这个时间,客户端没有任何活动,Nginx将会关闭连接;send_timeout 75;# 客户端请求头的区缓冲区大小,为避免请求 header 过大出现 400 错误,可以适当设置大一点;client_header_buffer_size 32k;# 客户端请求头的最大缓冲区数量和大小,为避免请求 header 过大出现 400 错误,可以适当设置大一点;large_client_header_buffers 8 32k;# 允许客户端请求的最大字节数,为避免请求 header 过大出现 400 错误,可以适当设置大一点;client_max_body_size  10m;# 客户端请求体的缓冲区大小,为避免请求 header 过大出现 400 错误,可以适当设置大一点;client_body_buffer_size  128k;# 配置 https_proxy 反向代理,配置如下:# 表示 Nginx 跟代理服务器连接超时时间proxy_connect_timeout  75;# 表示 Nginx 与代理服务器两个成功的响应操作之间超时时间;proxy_read_timeout  75;# 表示 Nginx 传输文件至代理服务器的超时时间;proxy_send_timeout 100;# 用于设置从代理服务器读取并保存用户头信息的缓冲区大小;proxy_buffer_size  4k;# 设置代理缓冲区大小,Nginx 针对单个连接,缓存来自代理服务器的响应,网页平均在32k以下的话,可以设置为 4 32K ;proxy_buffers  4  32k;# 设置高负荷下的缓冲大小,一般为 proxy_buffers 的两倍;proxy_busy_buffers_size  64k;# 当 proxy_buffers 放不下后端服务器的响应内容时,会将一部分保存到硬盘的临时文件中,这个值用来设置最大临时文件大小,默认1024M,它与 proxy_cache 没有关系;大于这个值,将从 upstream 服务器传回,设置为 0 禁用;proxy_max_temp_file_size  64k;# 当缓存被代理的服务器响应到临时文件时,这个选项限制每次写临时文件的大小;proxy_temp_file_write_size 64k;# 用于指定临时文件所在的目录;proxy_temp_path  proxy_temp;}

4、反向代理统一配置:

# 配置 https_proxy 反向代理,配置如下:http {...# 表示 Nginx 跟代理服务器连接超时时间proxy_connect_timeout  75;# 表示 Nginx 与代理服务器两个成功的响应操作之间超时时间;proxy_read_timeout  75;# 表示 Nginx 传输文件至代理服务器的超时时间;proxy_send_timeout 100;# 用于设置从代理服务器读取并保存用户头信息的缓冲区大小;proxy_buffer_size  4k;# 设置代理缓冲区大小,Nginx 针对单个连接,缓存来自代理服务器的响应,网页平均在32k以下的话,可以设置为 4 32K ;proxy_buffers  4  32k;# 设置高负荷下的缓冲大小,一般为 proxy_buffers 的两倍;proxy_busy_buffers_size  64k;# 当 proxy_buffers 放不下后端服务器的响应内容时,会将一部分保存到硬盘的临时文件中,这个值用来设置最大临时文件大小,默认1024M,它与 proxy_cache 没有关系;大于这个值,将从 upstream 服务器传回,设置为 0 禁用;proxy_max_temp_file_size  64k;# 当缓存被代理的服务器响应到临时文件时,这个选项限制每次写临时文件的大小;proxy_temp_file_write_size 64k;# 用于指定临时文件所在的目录;proxy_temp_path  proxy_temp;...
}

5、http_gzip 模块配置:

http {...# 如果设置为 on 则表示开启 gzip 压缩输出,可减少网络传输;gzip on;# 设置允许压缩的页面最小字节数(到达这个大小才进行压缩),页面字节数从 header 头的 content-length 中进行获取。默认值是 20。建议设置成大于 1k 的字节数,小于 1k 可能会越压越大;gzip_min_length 1K;# 设置系统获取多少个单位的缓存用于存储 gzip 的压缩结果数据流,4 16k 表示按照原始数据大小以 16k 为单位的 4 倍进行内存申请;gzip_buffers  4  16k;# 设置 http 协议的版本,早期的浏览器不支持 Gzip 压缩,用户就会看到乱码,所以为了支持前期版本加上了这个选项;如果你用了 Nginx 的反向代理并启用 Gzip 压缩的话就需要加上,而由于末端通信是 http/1.0,故请设置为 1.0;gzip_http_version 1.0;# zip 压缩比,为 1 时,压缩比最小处理速度最快;为 9 时,压缩比最大但处理速度最慢;gzip_comp_level 6;# 匹配 mime 类型进行压缩,无论是否指定,text/html 类型总是会被压缩的;gzip_types text/plain text/css application/json;# 配置开启或者关闭后端服务器返回的结果是否压缩,Nginx 作为反向代理的时候启用,匹配的前提是后端服务器必须要返回包含 Via 的 header头;gzip_proxied any;# 配置和 http 头有关系,会在响应头加个 Vary: Accept-Encoding ,可以让前端的缓存服务器缓存经过 gzip 压缩的页面,例如:用 Squid 缓存经过 Nginx 压缩的数据;gzip_vray on;...
}

6、负载均衡后台服务器(http中配置):

http {...upstream backend {server 192.168.56.10:8080 max_fails=2 fail_timeout=30s backup; # 热备server 192.168.56.11:8080 max_fails=2 fail_timeout=30s;}...
}

7、配置 TCP/UDP 代理服务器:

stream {# 负载均衡后台服务器upstream backend {server backend1.example.com:9000 max_fails=2 fail_timeout=30s backup; # 热备;server backend2.example.com:9000;# 可以添加更多服务器... }# server 定义了监听的地址和端口,并指定如何将连接转发到后端服务器。server {# 端口listen 80;location / {# 地址proxy_pass http://backend;# 其他代理设置...}}
}

http://www.lryc.cn/news/509972.html

相关文章:

  • shardingsphere分库分表项目实践4-sql解析sql改写
  • mysql数据库中,一棵3层的B+树,假如数据节点大小是1k,那这棵B+可以存多少条记录(2100万的由来)
  • Git 操作全解:从基础命令到高级操作的实用指南
  • 华院计算参与项目再次被《新闻联播》报道
  • 从一次线上故障聊聊接口自动化测试
  • Element-ui的使用教程 基于HBuilder X
  • Chapter 03 复合数据类型-1
  • 【Python知识】Python面向对象编程知识
  • CSharp: Oracle Stored Procedure query table
  • “协同过滤技术实战”:网上书城系统的设计与实现
  • Dhatim FastExcel 读写 Excel 文件
  • YOLO11全解析:从原理到实战,全流程体验下一代目标检测
  • 深度学习领域的主要神经网络架构综述
  • 【Nginx系列】---Nginx配置tcp转发
  • Java抽象工厂+单例模式
  • 后端接口设计
  • Docker部署Sentinel
  • 真实环境下实车运行,新能源汽车锂离子电池数据集
  • 【求职面试】驾照的种类
  • centos权限大集合,覆盖多种权限类型,解惑权限后有“. + t s”问题!
  • AI Agent案例全解析:百度营销智能体(8/30)
  • hive常用函数有哪些
  • 【Python高级353】python实现多线程版本的TCP服务器
  • 分布式调度框架学习笔记
  • SpringCloudAlibaba技术栈-Nacos
  • Redis篇--常见问题篇4--大Key(Big Key,什么是大Key,影响及使用建议)
  • 谷歌浏览器 Chrome 提示:此扩展程序可能很快将不再受支持
  • WebRTC服务质量(10)- Pacer机制(02) RoundRobinPacketQueue
  • 数据库的数据被清除了,该如何恢复?
  • 【西安电子科技大学考研】25官方复试专业课参考书目汇总