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

nginx.conf配置详解

文章目录

免费个人运维知识库,欢迎您的订阅:literator_ray.flowus.cn

注1:如果nginx位于负载均衡器,squid,nginx反向代理之后,web服务器无法直接获取到客户端真实的IP地址了。 $remote_addr获取反向代理的IP地址。反向代理服务器在转发请求的http头信息中,可以增加X-Forwarded-For信息,用来记录 客户端IP地址和客户端请求的服务器地址。

注2:使用 sort -k8 /var/log/nginx/access.log | less 查看 耗时的请求, -k后的数字表示排序的字段 第几列

user  nginx;worker_processes  2;  # 服务器CPU数量,建议设置为CPU总核数
worker_cpu_affinity auto;  # 自动分配使用的CPU数量 
worker_rlimit_nofile 65535; # 一个nginx进程打开的最多文件,理论值应该是最多打开文件数(系统的值ulimit -n)与nginx进程数相除,但是nginx分配请求并不均匀,所以建议与ulimit -n的值保持一致。error_log  /var/log/nginx/error.log warn; # 全局错误日志定义类型:[debug | info | notice | warn | error | crit]
pid        /var/run/nginx.pid; # 进程文件# 工作模式与连接数上限
events {use epoll; #  参考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; epoll模型是Linux 2.6以上版本内核中的高性能网络I/O模型,如果跑在FreeBSD上面,就用kqueue模型worker_connections  10240; # 单个进程最大连接数(最大连接数=连接数*进程数)
}http {include       /etc/nginx/mime.types; # 文件扩展名与文件类型映射表default_type  application/octet-stream; # 默认文件类型# remote_addr、http_x_forwarded_for:远程地址,记录客户端IP地址# remote_user:远程用户,记录客户端用户名称# time_local:本地时间,服务器自身时间# request:请求,记录请求的URL和HTTP协议# status:状态,记录请求状态# body_bytes_sent:发送给客户端的字节数,不包括响应头大小;该变量与Apache模块mod_log_config里的“%B”参数兼容# bytes_sent:发送给客户端的总字节数# connection:连接的序列号# connection_requests:当前通过一个连接获得的请求数量# msec:日志写入时间,单位为秒,精度是毫秒# pipe:如果请求是通过HTTP流水线(pipelined)发送,pipe值为“p”,否则为“.”# http_referer:记录从哪个页面链接访问过来的(超链接)(如果不是从超链接跳转过来的,日志处为"-")# http_user_agent:记录客户端浏览器相关信息# request_length:请求的长度(包括请求行,请求头和请求正文)# request_time:请求处理时间,单位为秒,精度毫秒;从读入客户端的第一个字节开始,直到把最后一个字符发送给客户端后进行日志写入为止# time_iso8601:ISO8601标准格式下的本地时间# time_local:通用日志格式下的本地时间log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  /var/log/nginx/access.log  main; # 定义本机nginx访问日志及路径#sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,对于普通应用,#必须设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,以平衡磁盘与网络I/O处理速度,降低系统的uptime.sendfile        on; # 开启高效文件传输模式#tcp_nodelay    on; # 防止网络阻塞#tcp_nopush     on; # 防止网络阻塞keepalive_timeout  65; # 连接超时时间,单位是秒   client_max_body_size 5m; # 允许客户端请求的最大单字节文件字节数(即单个文件上传大小的最大限制)gzip  on; # 开启gzip压缩输出gzip_min_length 1k; # 最小压缩文件大小# gzip_buffers 4 16k; # 压缩缓冲区gzip_http_version 1.1; # 压缩版本gzip_comp_level 5; # 压缩等级gzip_types text/css text/javascript text/xml text/plain application/json application/javascript application/x-javascript application/xml application/xml+rss; # 压缩类型,默认包含text/html,写上去也没问题,但是会有一个warngzip_disable "MSIE [1-6]\."; # 指定的客户端禁用gzip功能。我们设置成IE6或者更低版本以使我们的方案能够广泛兼容gzip_vary on; # 开启限制IP连接数的时候需要用proxy_cache_path /var/cache/nginx/cache levels=1:2 keys_zone=cache:100m inactive=1d max_size=10g;# nginx的waf生效相关配置lua_shared_dict limit 10m;init_by_lua_file /etc/nginx/waf/init.lua;access_by_lua_file /etc/nginx/waf/waf.lua;server_tokens off; # 此配置并不会让nginx执行的速度更快,但它可以关闭在错误页面中的nginx版本数字,对于安全性是有好处include /etc/nginx/conf.d/*.conf; # 
}

请不要以此视为定论,这只是我的个人经验

http://www.dtcms.com/a/357417.html

相关文章:

  • DNS域名系统
  • 【Java基础|第三十篇】File流
  • ClickHouse 客户端
  • 【3D入门-指标篇上】3D 网格重建评估指标详解与通俗比喻
  • 【LeetCode】动态规划——72.编辑距离、10.正则表达式匹配
  • Springboot高校迎新系统2cbcd(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • 独角数卡对接蓝鲸支付平台实现个人发卡
  • CS144 lab3 tcp_sender
  • Day16(前端:JavaScript基础阶段)
  • Pycharm打包PaddleOCR过程及问题解决方法
  • Go语言-->if判断中的;
  • SOME/IP-SD协议中组播IP地址和端口号应从何处获取、由谁设置?
  • 嵌入式Linux字符设备驱动开发
  • LFI-labs靶场通关教程
  • 串口通信1.0(串行并行)
  • 解决多种类潮湿敏感元器件的多温度、多时长的排潮烘干
  • 订餐后台项目-day02数据库模型定义笔记
  • DAY16-新世纪DL(DeepLearning/深度学习)战士:Q(机器学习策略)1
  • Go语言入门(13)-map
  • 科学融智学引领人机协同教育新范式
  • 吴恩达机器学习作业七:方差与偏差
  • 【上位机数据转换】数据结构原理及大小端
  • 《WINDOWS 环境下32位汇编语言程序设计》第8章 通用对话框
  • ssh端口转发的几种常用使用方式【本地端口转发、远程端口转发、反向端口转发、动态端口转发】
  • Jenkins 全方位指南:安装、配置、部署与实战应用(含图解)
  • Two-Twer模型做歌曲智能推荐与规则算法对比的优缺点分析
  • 对比rerank模型和embedding模型
  • 订餐后台管理系统 - day04退出登录与账号管理模块
  • C#简单组态软件开发
  • AlexNet:点燃深度学习革命的「卷积神经网络之王」