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

Nginx 常用配置

一、全局配置

全局配置主要设置一些影响Nginx服务器整体运行的配置指令,包括运行Nginx的用户和组、进程数、日志文件路径等。

用户和组:user [user] [group]; 指定运行Nginx的用户和用户组,默认为nobody。

进程数:worker_processes auto; 指定工作进程的数量,建议设置为CPU核心数或核心数的倍数。

错误日志:error_log /var/log/nginx/error.log; 指定全局错误日志文件的路径。

PID文件:pid /run/nginx.pid; 指定记录主进程ID的文件的路径。

二、事件处理配置(events块)

events块主要影响Nginx服务器与用户的网络连接,包括连接数、事件驱动模型等。

最大连接数:worker_connections 1024; 指定单个后台worker process进程的最大并发连接数。

事件驱动模型:use epoll; 在Linux系统中,使用epoll作为事件驱动模型可以显著提高Nginx的性能。

连接序列化:accept_mutex on; 开启后,会对多个Nginx进程接收连接进行序列化,防止惊群现象。

三、HTTP配置(http块)

http块是Nginx配置中最频繁的部分,包括文件类型映射、日志格式、访问控制、反向代理、负载均衡等。

文件类型映射:include mime.types; 加载mime.types文件,该文件包含了文件扩展名与文件类型的映射关系。

日志格式:通过log_format和access_log指令定义和指定日志格式及日志文件的路径。

文件传输:sendfile on; 启用sendfile功能,减少用户空间到内核空间的上下文切换,提高文件传输效率。

连接超时:keepalive_timeout 65; 设置客户端与服务器之间的连接保持时间。

四、反向代理与负载均衡

Nginx作为反向代理服务器,可以配置为将客户端请求转发到后端服务器,并可以根据需要配置负载均衡策略。

反向代理基本配置:

server {listen       80; # 监听80端口server_name  localhost; # 服务器名,这里使用localhost作为示例location / {# 反向代理配置proxy_pass http://localhost:8080; # 将请求转发到http://localhost:8080# 以下配置是可选的,但通常很有用proxy_set_header Host $host; # 将原始请求头中的Host字段转发到后端服务器proxy_set_header X-Real-IP $remote_addr; # 将客户端的真实IP地址转发到后端服务器proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 转发客户端的IP地址和原始请求的IP地址列表# 如果后端服务需要处理WebSocket连接,请取消以下行的注释# proxy_http_version 1.1;# proxy_set_header Upgrade $http_upgrade;# proxy_set_header Connection "upgrade";# 其他可能的代理设置...}# 其他server块...
}

负载均衡配置: 在http块中,可以使用upstream指令定义一个后端服务器组,并在server块中使用proxy_pass指令引用该组。Nginx支持多种负载均衡策略,如轮询、加权轮询、IP哈希等。

upstream myapp1 {server backend1.example.com weight=5;server backend2.example.com;server backup1.example.com backup;
}
server {
}

五、动静分离配置

server {listen 80;server_name yourdomain.com;# 处理静态资源location ~* \.(html|htm|gif|jpg|jpeg|png|ico|css|js|txt)$ {root /path/to/your/static/files;expires 30d; # 设置浏览器缓存时间}# vue 服务器location / {root /usr/share/nginx/html/vue-app; # 指向Vue打包文件的目录try_files $uri $uri/ /index.html; # 对于Vue单页应用,尝试匹配静态文件,如果未找到,则返回index.html}# 处理动态资源,转发到Tomcatlocation / {proxy_pass http://localhost:8080;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}

六、其他常用配置

SSL/TLS配置:用于支持HTTPS协议,保护数据传输的安全性。

Gzip压缩:通过gzip指令开启Gzip压缩功能,减少数据传输量,提高传输效率。

缓存配置:Nginx支持对静态文件进行缓存,减少后端服务器的负载。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • ctfshow-web入门-sql注入(web186-web190)
  • python后端 启用 gzip 压缩响应体
  • 虚拟DOM、Vue渲染流程
  • Python3 爬虫 数据抓包
  • 【深入剖析】Spring依赖注入的最佳实践(@Autowired的正确用法)
  • 【RabbitMQ】直连交换机_扇形交换机_主题交换机
  • Vision Pro 3D 目标跟踪实战案例:厨房场景应用
  • QTableView使用示例-Qt模型视图代理(Model-View-Delegate)使用示例
  • Go-反射
  • 2024最新最全面的Selenium 3.0 + Python自动化测试框架
  • LeetCode每日一题_572.另一棵树的子树
  • C#学习笔记14:SYN6288语音模块_Winform上位机控制软件
  • 使用Variadic Templates(可变参数模板)实现printf
  • electron 配置、打包 -报错解决
  • RocketMQ 的认证与授权机制
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • 2017 年终总结 —— 在路上
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • CODING 缺陷管理功能正式开始公测
  • Git 使用集
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • Java方法详解
  • java正则表式的使用
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • Python 基础起步 (十) 什么叫函数?
  • Spark RDD学习: aggregate函数
  • vue2.0开发聊天程序(四) 完整体验一次Vue开发(下)
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 力扣(LeetCode)357
  • 小程序开发中的那些坑
  • 小而合理的前端理论:rscss和rsjs
  • 正则与JS中的正则
  • 字符串匹配基础上
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (2022 CVPR) Unbiased Teacher v2
  • (2024最新)CentOS 7上在线安装MySQL 5.7|喂饭级教程
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (阿里云万网)-域名注册购买实名流程
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (附源码)计算机毕业设计ssm电影分享网站
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (转)shell中括号的特殊用法 linux if多条件判断
  • (转)重识new
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .bat批处理(一):@echo off
  • .Net 6.0 处理跨域的方式
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • .net web项目 调用webService
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)