nginx服务器

2023-11-11

nginx服务器

Nginx服务器(engine-X),是一种web服务器。它是一种开源的高性能HTTP和反向代理服务器。 它也可提供IMAP/POP3/SMTP代理服务等功能。

Nginx是以多进程的方式来工作的。也支持多线程的方式,只是主流的方式还是多进程的方式,也是Nginx的默认方式。

Nginx启动后,它在Unix系统中会以daemon的方式在后台运行,后台进程包含一个master进程和多个worker进程。

master进程主要用来管理worker进程,包含:接收来自外界的信号,向各worker进程发送信号,监控worker进程的运行状态,当worker进程退出后(异常情况下),会自动重新启动新的worker进程。

而基本的网络事件,则是放在worker进程中来处理了。多个worker进程之间是对等的,他们同等竞争来自客户端的请求,各进程互相之间是独立的。

一个请求,只可能在一个worker进程中处理,一个worker进程,不可能处理其它进程的请求。worker进程的个数是可以设置的,一般我们会设置与机器cpu核数一致。

优点
  1. 高并发连接

    官方测试能支撑5万并发连接,在实际生产环境中跑到2~3万并发连接数。Nginx服务器专为性能优化而开发。它支持内核Poll模型,能经受高负载的考验。

  2. 内存消耗少

    Nginx服务器采取了分阶段资源分配技术,这使得它的CPU与内存占用率非常低。

  3. 配置文件简单

  4. 成本低 : Nginx服务器是开源软件。

  5. 支持Rewrite重写规则

    能根据域名、URL的不同,将 HTTP 请求分到不同的后端服务器群组。

  6. 内置的健康检查功能.

    若 Nginx服务器 Proxy 后端的某台 Web 服务器宕机,不会影响前端访问。

  7. 节省带宽.

    支持 GZIP 压缩,可以添加浏览器本地缓存的 Header 头。

  8. 稳定性高.

    Nginx服务器的稳定性很高。其它HTTP服务器在遇到访问峰值,或有人恶意发起慢速连接时,很可能会导致服务器物理内存耗尽,频繁交换,失去响应(只能重启服务器)。

    另外, Nginx服务器采用master-slave模型,能充分利用SMP的优势,且能减少工作进程在磁盘I/O的阻塞延迟。

    Nginx服务器代码质量很高,很规范, 模块扩展也很容易。Nginx服务器采用了一些os提供的最新特性如对sendfile (Linux2.2+),accept-filter(FreeBSD4.1+),TCP_DEFER_ACCEPT (Linux 2.4+)的支持,从而大大提高了性能。

Nginx和Apache的区别

相同点:

  • 都是HTTP服务器软件;

  • 功能实现上都采用模块化结构设计;

  • 都支持通用的语言接口(如PHP、Perl、Python);

  • 支持正、反向代理,虚拟主机,URL重写,压缩传输,SSL加密传输等;

差别:

  • Apache处理速度较慢,且占用很多内存资源,而Nginx服务器却相反;

  • 在功能实现上,Apache的所有模块都支持动、静态编译,而Nginx服务器模块都是静态编译的;

  • 在处理连接方式上,Nginx支持epoll,而Apache不支持;

  • Nginx服务器安装包很小,只有几百KB;

安装Nginx
  1. Linux下yum安装
  • 产生yum配置文件/etc/yum.repos.d/nginx.repo

  • 编写如下内容:

[nginx]

name=nginx repo

baseurl=http://nginx.org/packages/OS/OSRELEASE/$basearch/

gpgcheck=0

enabled=1

其中OS可以选择:“rhel” or “centos”

OSRELEASE,选择6,或者7即可。

  • yum install nginx就可以安装了。
  1. Linux下源码安装

    Nginx有模块依赖性,需要依赖下面3个包,才能源码编译安装。

    • gzip 模块需要zlib库

    • rewrite 模块需要pcre库

    • ssl 功能需要openssl库

Nginx的配置文件结构

nginx.conf由多个块组成。最外面的一块是main,main包含events和http,http包含多个upstream和多个server,server又包含多个location块:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nQ7XTcC0-1600152737806)(file:///C:\Users\john\AppData\Local\Temp\ksohtml\wps8D17.tmp.jpg)]

main(全局设置)、server(虚拟主机设置)、upstream(负载均衡服务器设置)和 location(URL匹配特定位置的设置)。

Ø main块设置的指令将影响其他所有设置;

Ø server块的指令主要用于指定主机和端口,以及网站路径;

Ø upstream指令主要用于负载均衡,设置一系列的后端服务器;

Ø location块用于匹配网页位置;

这四者之间的关系:server继承main,location继承server,upstream既不会继承其他设置也不会被继承。

Nginx的全局配置
#指定使用的用户和组  

#user  nginx nginx;  

#启动进程,通常设置成和cpu的数量相等  

worker_processes  1;  


#全局错误日志  

#error_log  logs/error.log;  

#error_log  logs/error.log  notice;  

#error_log  logs/error.log  info;  


#PID文件--存放进程号的文件  

#pid  logs/nginx.pid;  
events配置
#工作模式及连接数上限  

events {  

#单个后台worker process进程的最大并发链接数  

worker_connections  1024;  

#并发总数是 worker_processes 和 worker_connections 的乘积  


#Nginx服务器支持如下处理连接的方法(I/O复用方法),这些方法可以通过 use指令指定.    

#use [ kqueue | rtsig | epoll | /dev/poll | select | poll];    


use epoll;  #使用 epoll(linux2.6的性能方式 )  

}  

注意: 服务器为linux时, 请用use epoll。 利用linux的内核提供性能优化方案。

http配置

http {  

#Nginx服务器对HTTP服务器相关属性的配置  

include mime.types;  

default_type  application/octet-stream;  

#设定虚拟主机配置     

server {  

#侦听80端口  

listen  80;  

#定义使用 www.itsource.cn访问  

server_name  www.itsource.cn;  

location  {  

}  

location  {  

 }..  

 }  

server {  

#侦听80端口  

listen  80;  

#定义使用 www.example.cn访问  

server_name  www.example.cn;  

location  {  

}  

location  {  

}..  

   }  

}  
  1. include是个主模块指令。它实现对配置文件所包含的文件的设定,以减少主配置文件的复杂度。

  2. default_type属于HTTP核心模块指令. 这里设定默认类型为二进制流,也就是当文件类型未定义时使用这种方式。

  3. server块的指令主要用于指定主机和端口(虚拟主机).

  4. location部分主要用于匹配网页位置,设置不同的功能特征. 比如:缓存,重定向等…

什么是反向代理?

当以代理服务器来接受网络上的连接请求,再将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给网络上发出请求的客户端时,代理服务器对外就表现为一个反向代理服务器.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

nginx服务器 的相关文章

  • 为什么 Nginx 以相反的顺序提供客户端 SSL DN?

    我很好奇为什么某些 Web 服务器 例如 Nginx 以相反的顺序提供客户端 SSL DN Web 应用程序将 DN 发布到 Java Web 服务 该服务尝试创建 Javajavax naming ldap LdapName http d
  • Nginx vs Apache 用于高流量站点

    Would nginx作为高流量网站的网络服务器是否是更合适的选择 我们将建立的网站是一个电子商务网站 如果这有什么不同的话 无论哪种方式 从技术角度来看 我真的对实际的 原因 感兴趣 即 为什么会nginx从技术角度来看 对于此类网站来说
  • nginx工作进程如何共享“监听套接字”

    This http aosabook org en nginx html http aosabook org en nginx html说 工作进程接受来自共享 监听 套接字的新请求 并在每个进程内执行高效的运行循环 我查看了代码 但不明白
  • airflow webserver 命令失败并显示 {filesystemcache.py:224} 错误 - 不允许操作

    我正在 Cent OS 7 上安装 Airflow 我已经配置了 Airflow db init 并检查了 nginx 服务器的状态及其工作正常 但是当我运行airflow webserver命令时 我收到下面提到的错误 2021 03 2
  • 为什么在生产中得到空 CSS 文件?

    我在文件中放入了很多css文件active admin css scss Active Admin s got SASS import active admin mixins import active admin base import
  • 使用 client_body_in_file_only 进行 nginx 文件上传

    晚上好 我需要将静态内容上传到 nginx 服务器 1 9 因此上传模块不适用于此版本 我读过这篇文章 Nginx 直接文件上传 无需通过后端传递 https coderwall com p swgfvw nginx direct file
  • uWSGI重启时停机

    每次当我有代码更新时重新启动服务器时 我都会遇到 uwsgi 问题 当我使用 sudo restart account 重新启动 uwsgi 时 停止和启动实例之间存在一个小间隙 导致停机并停止所有当前请求 当我尝试 sudo reload
  • nginx 将虚拟目录重写为文件

    这应该很容易做到 但我的头撞在墙上了 如果我收到对 www mysite com mypath 的请求 我想提供 www mysite com myotherpath thisfile html 的内容 我如何使用 nginx 配置来做到这
  • Nginx反向代理返回404

    我的 Nginx 安装并运行 下面是配置 etc nginx nginx conf 我要全部转发 api 到我的 tomcat 服务器 该服务器在同一服务器上的端口 9100 上运行 类型http myhost 9100 api apps有
  • 我可以在 Nginx Conf 中添加多少个服务器块

    知道我可以在 Nginx 配置中添加多少个服务器块吗 我需要将它用于具有多个子域的反向代理 每个客户端一个子域 它能成功支持 10 000 个服务器块吗 有没有相关的基准研究 这实际上并不是一个你有多少人的问题can但你有多少 能够妥善处理
  • Http POST 删除 URL 中的端口

    我有一个用 Django 构建的网络应用程序 我目前正在家里的路由器后面的笔记本电脑上运行它 我将路由器配置为将发送到特定端口的所有流量路由到该笔记本电脑 我将 Nginx 作为 Apache 的反向代理 使用 mod wsgi 来运行 D
  • nginx 反向代理到 apache-wordpress 可以工作,但到外部 url 的 proxy_pass 失败

    我有一个针对 apache wordpress 的 nginx 反向代理设置 效果很好 但是 根据位置需要重定向到失败的外部 url 请检查以下配置 这是一个有效的设置吗 https platform com https platform
  • nginx 和 uwsgi 非常大的文件上传(>3Gb)

    也许有人知道该怎么做 我正在尝试上传大于 3Gb 的文件 没问题 如果我使用以下配置上传高达 2Gb 的文件 Nginx client max body size 5g client body in file only clean clie
  • 常规请求期间 Django AJAX 请求未通过

    我有一个带有登录网页的 Django 站点 当提交页面上的登录表单时 它会执行登录视图 该视图会在其中运行一个需要很长时间处理 30秒左右 的函数 因此 为了在登录期间向客户端显示进度 一旦提交表单 登录页面上的 JS 函数就会开始向服务器
  • Kubernetes Ingress 在 nginx 反向代理后面运行

    我已经在可以从互联网访问的服务器上安装了 minikube 我创建了一个可用的 kubernetes 服务 gt kubectl get service myservice NAME CLUSTER IP EXTERNAL IP PORT
  • NGINX 上的 SSL 终止

    我已经购买了 SSL 证书 并在验证模数时正确地将其捆绑在一起 即https kb wisc edu middleware 4064 https kb wisc edu middleware 4064 那么哈希值是相同的 我已将证书和密钥移
  • 如何修复 Nginx 自动 301 重定向到带有尾部斜杠的相同 URL?

    当我尝试将 Web 应用程序的子目录中的索引文件访问到相同的 URL 但附加了斜杠 时 Nginx 出现了不良行为 它正在重新路由请求 我有一个简单的 Web 应用程序 其中设置了一个根目录和其中的许多子目录 每个子目录中都有一个 inde
  • 在 docker 中将 pgadmin 连接到 postgres

    我有一个docker compose与服务文件python nginx postgres and pgadmin services postgres image postgres 9 6 env file env volumes postg
  • Logrotate - nginx 日志不在 docker 容器内旋转

    我有一个运行 nginx 的 docker 容器 它正在将日志写入 var log nginxLogrotate 安装在 docker 容器中 并且 nginx 的 logrotate 配置文件已正确设置 尽管如此 logrotate 仍不
  • 阻止 ingress-nginx 负载均衡器上的特定路径

    我有许多指向入口控制器 IP 的域 我想阻止所有域 站点的 特定路径 有没有办法做到这一点 我可以用nginx ingress kubernetes io configuration snippet 对于每个站点 但正在寻找同时处理所有站点

随机推荐

  • pdf裁剪

    1 单独页面的 就一页 1 编辑 2 裁剪 3 画框 最好少留空白 4 双击框 之后出现这个页面 勾选自定义 之后确定就行了 5 导出 内嵌的就是eps 文件 导出到 6 如果导出图像 点设置 设置一下分辨率 2 如果是多页面 1 也是先按
  • 正大国际期货:期货市场的交易原则

    期货交易市场是金融市场的一个重要分支 它是以标准化合约为基础的交易市场 在这个市场中 交易双方约定未来某一时间点的价格和交割方式 进行交易和投资 对于期货交易市场的投资者来说 有一些重要的交易原则需要遵守 下面是正大Hgones认为的一些需
  • 指标体系建设的一些思考

    指标体系是什么 收集企业内部业务动作产生的数据 使用统计分析方法 产出一系列能够对业务过程进行表达的数据指标 例如 DAU GMV 通过这些数据指标 企业上层能够快速了解企业经营现状 并进行业务决策 数据指标的合集就是指标体系 指标体系核心
  • 解决:return _compile(pattern, flags).search(string) TypeError: expected string or buffer

    今天写爬虫 爬取MM图片页面的标题时 遇到了一个问题 上图 看看我的代码 1 import urllib 2 import urllib2 3 import re 4 5 class JPMSG 6 7 def init self base
  • 全栈式部署:SpringCloud 微服务+Docker + Vue + nginx 前后端一站式部署

    markdown body line height 1 75 font weight 400 font size 16px overflow x hidden color rgba 51 51 51 1 markdown body h1 m
  • blender中旋转问题(A绕B的中心旋转)

    如果想要以正方体为中心进行对球体进行旋转 应该shift选中这两个物体 并将正方体选为父级 按下ctrl p 发现中心点变成了正方体 这时候对球体进行旋转 发现是围绕着正方体旋转 就完成了 旋转正方体 发现球体跟着正方体旋转 但我想要正方体
  • 卷积神经网络——为了毕设

    CNN笔记 通俗理解卷积神经网络 v JULY v的博客 CSDN博客 卷积神经网络通俗理解 卷积神经网络 输入层 卷积层 激活函数 池化层 全连接层 yjl9122的博客 CSDN博客 卷积神经网络输入层 CNN 卷积 对图像 不同的数据
  • 跨页面通信postMessage和onmessage

    简介 通常 对于两个不同页面的 只有当它们位于同协议 同域名 同端口时 才可以通信 而window postMessage 方法可以安全地实现跨源通信 语法 发送 otherWindow postMessage message target
  • c++虚函数有几个虚表

    怕自己忘记了 所以复制一下 尊重他人版权 http blog csdn net haoel article details 1948051 前言 C 中的虚函数的作用主要是实现了多态的机制 关于多态 简而言之就是用父类型别的指针指向其子类的
  • VUE项目开发的完整流程

    文章目录 一 VUE环境搭建 二 创建VUE项目 1 外部终端创建 2 IDea内部终端创建 3 项目介绍 4 vue 的特别之处 三 添加前端开发插件依赖 四 前端开发流程 1 创建组件与编码 2 配置组件路由 3 运行 五 前后端交互
  • S参数仿真如何添加Mask

    S参数仿真如何添加Mask 对于高速信号的仿真 一般Spec中均会对Return loss Insertion Loss提出对应的模板要求 这些模板要求多数都是通过公式进行约束 如GMSL2中对于回损的要求 这种公式约束的S参数模板 可通过
  • 数据挖掘入门指南!!!

    Datawhale 作者 王瑞楠 吴忠强 徐韬 田杨军 摘要 入门数据挖掘 必须理论结合实践 本文梳理了数据挖掘知识体系 帮助大家了解和提升在实际场景中的数据分析 特征工程 建模调参和模型融合等技能 数据分析 探索性数据分析 Explora
  • Scratch角色的绘制与中心点

    将鼠标移动到界面右下角的角色栏 可以选择 绘制一个角色 点击绘制 左侧会进入造型界面 现在来绘制一个圆形 点击左侧的圆 然后在画布上按住鼠标左键进行绘制 按下点即为圆心 默认是绘制椭圆 可以按住shift来绘制正圆 上方可以调整圆的填充和轮
  • 如何使用Python对文件进行压缩与解压缩

    前言 我们在日常工作中 除了会涉及到使用Python处理文本文件 有时候还会涉及对压缩文件的处理 通常会涉及到的压缩文件格式有 rar Windows 环境下用的比较多的压缩 比较著名的GUI工具是winrar tar Linux系统下的打
  • Mabtis设置控制台打印sql(转)

    在mybatis config xml 中加入以下配置即可
  • 一名普通本科生从无到有(暑期实习)的分享感悟

    前言 本篇帖子主要记录下自己在找实习的一个经过吧 有兴趣的佬们可以看看 帖子中可能有很多自己的看法 牛友们不喜勿喷哈 先介绍下自己吧 普通本科 没有竞赛经历 没有任何奖项 大三上用python做了一个项目 这就是2022年之前的我 在1 3
  • MySQL查看数据库性能常用命令

    MySQL查看数据库性能常用命令 一 查询服务器状态和配置 列出MySQL服务器运行各种状态值 mysql gt show global status 查询MySQL服务器配置信息语句 mysql gt show variables 二 慢
  • 在matlab中如何把两个txt文件合并到一起

    a 1 2 3 2 3 4 b 4 5 6 5 9 9 要求 c 1 2 3 2 3 4 4 5 6 5 9 9 使用命令 c a b 同时要横向合并 如产生 c 1 2 3 4 5 6
  • Excel列表名称

    一 给你一个整数 columnNumber 返回它在 Excel 表中相对应的列名称 例如 A gt 1 B gt 2 C gt 3 Z gt 26 AA gt 27 AB gt 28 示例 1 输入 columnNumber 1 输出 A
  • nginx服务器

    nginx服务器 Nginx服务器 engine X 是一种web服务器 它是一种开源的高性能HTTP和反向代理服务器 它也可提供IMAP POP3 SMTP代理服务等功能 Nginx是以多进程的方式来工作的 也支持多线程的方式 只是主流的