nginx原理和配置项详解

一、nginx原理

Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。其工作原理和配置项如下:

工作原理:

  1. 反向代理:Nginx可以作为反向代理服务器,接收客户端的请求,然后将请求转发给后端的服务器。Nginx可以根据不同的正则匹配采取不同的转发策略,如图片文件结尾的走文件服务器,动态页面走web服务器。同时,Nginx可以对返回结果进行错误页跳转,异常判断等。如果被分发的服务器存在异常,Nginx可以将请求重新转发给另外一台服务器,然后自动去除异常服务器。
  2. 负载均衡:Nginx提供了负载均衡策略,包括内置策略和扩展策略。负载均衡能够将服务的请求分发给负责相应服务的服务器,当请求同一个服务的请求过多时,服务器可以承受,从而提高服务器的处理能力。

配置项详解:

  1. worker_processes:Nginx的工作进程数。建议设置为CPU核数。
  2. events { worker_connections }:每个worker进程的最大连接数。这个数字应大于1024。
  3. http { }:主要配置HTTP服务器的区域。
  4. server { }:定义一个虚拟服务器。
  5. location { }:定义URL匹配的规则和处理方式。常见的处理方式有proxy_pass(代理到后端服务器)、index(指定默认的index文件)、try_files(尝试按顺序查找文件或目录)。
  6. error_page:定义错误页面。例如,error_page 404 /404.html;会将404错误指向一个自定义的404.html页面。
  7. proxy_pass:指定后端代理服务器地址。例如,proxy_pass http://127.0.0.1:8080;会将所有请求转发到本地的8080端口。
  8. sendfiletcp_nopushtcp_nodelay:与socket的send操作有关的指令。
  9. keepalive_timeout:长连接的超时时间。
  10. fastcgi_pass:指定FastCGI服务器的地址。
  11. include /etc/nginx/conf.d/*.conf:包含其他配置文件。

二、nginx配置详解

这一部分可以作为公共配置,包含的   
  include /etc/nginx/conf.d/*.conf;

可以作为子配置文件引入

#配置用户或者组,默认为nobody
user  nginx;#允许生成的进程数,默认为1,一般配置为cpu核数
worker_processes  auto;
#错误日志
error_log  /var/log/nginx/error.log notice;#进程ID
pid        /var/run/nginx.pid;events {accept_mutex on;   #设置网路连接序列化,防止惊群现象发生,默认为onmulti_accept off;  #设置一个进程是否同时接受多个网络连接,默认为off# epoll 模型对事件处理进行优化use epoll;      #事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport#允许最大连接数worker_connections  5120;
}#http块
http {# 相关安全漏洞响应头# 检测到目标 X-Content-Type-Options响应头缺失 这个暂时不开启,不然部分banner无法使用add_header X-Content-Type-Options nosniff;# 检测到目标 X-XSS-Protection响应头缺失add_header X-XSS-Protection "1; mode=block";# 检测到目标 Content-Security-Policy响应头缺失add_header Content-Security-Policy "default-src 'self' http: https://* data: blob: 'unsafe-eval' 'unsafe-inline';child-src 'none' " always;# 检测到目标 Referrer-Policy响应头缺失add_header Referrer-Policy "no-referrer-when-downgrade" always;# 检测到目标 X-Permitted-Cross-Domain-Policies响应头缺失add_header X-Permitted-Cross-Domain-Policies none;# 检测到目标 X-Download-Options响应头缺失add_header X-Download-Options noopen;# 检测到目标 Strict-Transport-Security响应头缺失add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";add_header X-Frame-Options "SAMEORIGIN";#隐藏nginx版本信息server_tokens off;#文件扩展名与文件类型映射表include       /etc/nginx/mime.types;#默认文件类型,默认为text/plaindefault_type  application/octet-stream;#日志格式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 if=$ignore_ua;sendfile        on;#tcp_nopush     on;#连接超时时间,默认为75s,可以在http,server,location块。keepalive_timeout  65;#gzip  on;client_max_body_size 1024m;#包含的自定义配置文件块include /etc/nginx/conf.d/*.conf;#是否传递4xx和5xx错误信息到客户端,或者允许nginx使用error_page处理错误信息。fastcgi_intercept_errors on;#Disable logging for ELB healthcheck. It creates lots of noise on logging platform##关闭健康检测日志的输出map $http_user_agent $ignore_ua {default                 1;"clb-healthcheck"       0;}}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/599456.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

企业级实践为“燃料”,大模型助推Kyligence产品力向上

回顾2023年,最火热的科技话题无疑是生成式AI。 从ChatGPT横空出世,到“千模大战”如火如荼,AIGC正式破圈,成为企业数字化转型的新关键词。 在红杉中国《2023企业数字化年度指南》中,通过调研235家企业可知&#xff0…

VR与数字孪生:共同构筑未来的虚拟世界

随着科技的不断发展,数字孪生和VR已经成为当今热门的科技话题。作为山海鲸可视化软件的开发者,我们对这两者都有深入的了解。在此,我们将详细探讨数字孪生与VR的区别和联系。 首先,数字孪生(Digital Twin)…

光明源@智慧厕所技术:优化生活,提升卫生舒适度

在当今数字科技飞速发展的时代,我们的日常生活正在经历一场革命,而这场革命的其中一个前沿领域就是智慧厕所技术。这项技术不仅仅是对传统卫生间的一次升级,更是对我们生活品质的全方位提升。从智能感应到数据分析,从环保设计到舒…

BFS、SPFA、Dijkstra算法中vis数组的用法对比

先上代码&#xff1a; BFS&#xff1a; bool vis[MAXN]; int dis[MAXN];void bfs(int s) {queue<int> Q;Q.push(s);vis[s] true;while(!Q.empty()){int u Q.front();Q.pop();for(int e first[u]; e; e nxt[e]){int v go[e];if(vis[v]) continue;dis[v] dis[u] 1…

防抖节流的应用场景

1.防抖&#xff1a; 表单验证&#xff1a;当用户在输入框中输入内容时&#xff0c;可以使用防抖来延迟验证用户输入的内容&#xff0c;减少验证的频率。按钮点击&#xff1a;当用户频繁点击按钮时&#xff0c;可以使用防抖来确保只有最后一次点击生效&#xff0c;避免重复提交…

python flask-富文本编辑器的嵌入

富文本编辑器是用来提交大段文字的有效途径&#xff0c;同时也比较美观一些。下面记录下最简用法。首先是pip pip install flask-ckeditor 安装完毕后&#xff0c;观察下面语句&#xff0c;先引入模块然后绑到app上最后就可以个调用了&#xff0c;最简单的取数据方法是&#xf…

外汇天眼:交易如何突破“知行合一”这关?

接触交易之后有无数次想要放弃交易&#xff0c;在交易中的失败实在是太痛苦了&#xff0c;有时候这种失败是打击的作为一个人的最根本的自信&#xff0c;这种失败让我质疑我自己“本就是个普通人&#xff0c;不要想太美的事情”“为什么学习这么多还是不能盈利&#xff0c;我真…

<六>Python的字符串切片及常见操作

字符串的表示 在Python里&#xff0c;可以使用一对单引号、一对双引号或者一对三个双引号、一对三个单引号表示字符串。 a "Im Tom" # 一对双引号 b Tom said:"I am Tom" # 一对单引号c Tom said:"I\m Tom" # 转义字符d Tom said:"…

行业模型与场景落地新样本,网易有道发布多款“子曰”教育大模型落地应用与产品

距离2023年7月正式发布教育大模型“子曰”不到半年时间&#xff0c;教育科技公司网易有道近日再次分享了“子曰”教育大模型创新和落地成果&#xff0c;宣布推出国内首个教育大模型“子曰”2.0版本&#xff0c;同时还发布了基于大模型研发的三大创新应用——AI家庭教师“小P老师…

11.19 校招 实习 内推 面经

绿*泡*泡&#xff1a; neituijunsir 交流裙 &#xff0c;内推/实习/校招汇总表格 1、自动驾驶一周资讯 - 理想汽车发布第三季度财报&#xff1b;小米汽车现身工信部公告&#xff1b;小鹏汽车Q3营收超85亿元&#xff1b;11月前两周新势力销量排行榜 自动驾驶一周资讯 - 理想…

第01章_C语言入门

第01章_C语言入门 讲师&#xff1a;尚硅谷-宋红康&#xff08;江湖人称&#xff1a;康师傅&#xff09; 官网&#xff1a;http://www.atguigu.com 适合对象 考研同学&#xff0c;且考试科目中包含数据结构等&#xff08;需要使用C/C写代码&#xff09;考研同学&#xff0c;考…

前端如何获取响应头Content-Disposition中的filename,获取文件类型fileType进行不同类型的文件预览

// 预览文件preview: function(item) {var vm = this;if (!item.raw) {var itemBasicId = this.form.itemBasicIdvar url =ctx + /aea/item/basic/getItemDocOrTemplateFile.do?itemBasicId=+itemBasicId+&fileType=applyTableTemplateaxios({method: GET,headers: {Autho…

简述C语言中为什么要用指针

在C语言中&#xff0c;指针的使用是非常重要的&#xff0c;主要由于以下几个原因&#xff1a; 直接访问内存&#xff1a;指针允许程序直接访问和操作内存。这使得程序能够与硬件直接交互&#xff0c;提供了对底层数据结构的更精细控制&#xff0c;这在系统编程中尤其重要。 提…

ChatGPT怎么帮我上班的

1.解放生产力 1&#xff09;标准格式&#xff0c;完美输出。GPT对于公文等具有一定标准格式的文件&#xff0c;可以进行完美仿写&#xff0c;随随便便以假乱真那都是小菜一碟&#xff0c;这对于经常要开展规范成文的人来说&#xff0c;简直就是个福音&#xff0c;只要前期调教…

ruoyi-ai 基于ruoyi-plus实现AI聊天和绘画功能-后端

基于ruoyi-plus实现AI聊天和绘画功能-后端 本项目完全开源免费&#xff01; 后台管理界面使用elementUI服务端使用Java17SpringBoot3.X ruoyi-ai: 基于ruoyi-plus实现AI聊天和绘画功能-后端 实现功能 集成OpenAi API (gpt-4-vision-preview dall-e-3)接入文生图模型&#xf…

如何快速定位php程序运行慢的地方

1 slow log日志 查看slowlog日志位置 编辑php-fpm.conf文件&#xff0c;更改或增加两行内容 slowlog /data/logs/php-slow.log request_slowlog_timeout 2 说明&#xff1a;slowlog定义日志路径和名字&#xff0c;request_slowlog_timeout定义超时时间&#xff0c;单位…

初探Linux环境配置与pyTorch学习

初探Linux环境配置与pyTorch学习 文章目录 初探Linux环境配置与pyTorch学习初探LinuxInstall vmware and ubuntuSwap sourses and typewritingLearn basic command Learn gitLearn .gitignore and git lfsgitignore忽略规则优先级忽略规则匹配语法实例不生效情况 git lfslfs作用…

【每日面试题】精选java面试题之redis

Redis是什么&#xff1f;为什么要使用Redis&#xff1f; Redis是一个开源的高性能键值对存储数据库。它提供了多种数据结构&#xff0c;包括字符串、列表、集合、有序集合、哈希表等。Redis具有快速、可扩展、持久化、支持多种数据结构等特点&#xff0c;适用于缓存、消息队列…

Java/JDK下载安装与环境配置详解

本文将详细介绍如何下载、安装Java开发工具包&#xff08;JDK&#xff09;以及进行环境配置&#xff0c;以便在计算机上顺利运行Java程序。内容包括JDK的下载、安装、环境变量配置、验证安装与配置等。 一、Java简介 Java是一种广泛使用的计算机编程语言&#xff0c;具有跨平…

uni-app 中使用定时器和取消定时器

uni-app 中使用定时器和清除定时器 uni-app 中我们应该如何使用定时器呢&#xff1f;在结束后我们该如何让清除定时器&#xff1f; 下面我们就来分享一下吧。 1、 定义一个 data(){return{timer: null} } 2、设置定时器 //选择适合需求的定时器 this.timer setTimeout( ()…