Nginx - ​一个高性能、灵活可靠的开源Web服务器

这篇具有很好参考价值的文章主要介绍了Nginx - ​一个高性能、灵活可靠的开源Web服务器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Nginx - ​一个高性能、灵活可靠的开源Web服务器

Nginx是什么?

  Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。2011年6月1日,nginx 1.0.4发布。

  特点是占有内存少并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。在全球活跃的网站中有12.18%的使用比率,大约为2220万个网站。

  Nginx安装非常的简单、配置文件非常简洁(还能够支持perl语法)、Bug非常少的服务。Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行软件版本的升级。

  Nginx代码完全用C语言从头写成。官方数据测试表明能够支持高达 50,000 个并发连接数的响应。

为什么用Nginx

  项目刚上线时,用户量和并发量都很小。此时,一台应用服务器足够处理用户请求,服务器直接返回内容给用户。然而,随着用户数量的增加和并发量的上升,单台服务器无法满足需求。为了解决这个问题,采取了横向扩展的方式,增加了多台服务器。现在,多个项目运行在不同的服务器上。为了让用户访问这些服务器,引入了一个代理服务器。代理服务器的作用是接收用户的请求,并根据一定的规则将请求转发到不同的服务器节点上。这个过程对用户来说是无感知的,用户并不知道最终返回结果的服务器是哪一台。同时,希望代理服务器能够根据服务器的性能提供不同的权重选择,以保证最佳的用户体验。

Nginx的作用

  • HTTP代理和反向代理:Nginx常被用作Web服务器,其中最常见的功能是充当HTTP代理或反向代理。作为代理服务器,它可以接收客户端的请求并将其转发给后端服务器,然后将响应返回给客户端。这种方式可以隐藏后端服务器的真实IP地址,提供负载均衡缓存安全性等优势。
  • 负载均衡:Nginx提供负载均衡功能,可以将请求分发给多个后端服务器,以实现更好的性能和可靠性。它支持多种负载均衡策略,包括轮询加权轮询IP哈希等。
  • 动静分离:在动态网站中,有些资源是静态的(如CSS、HTML、图片等),不需要经过后端处理,而有些资源是动态生成的,需要后端服务器处理。Nginx可以根据规则将动态资源和静态资源分离,将静态资源进行缓存,以提高响应速度和减轻后端服务器的负载。
    Nginx - ​一个高性能、灵活可靠的开源Web服务器

4、Nginx服务搭建和使用

Nginx官网:https://nginx.org/

本次使用华为云服务器(ubuntu22) + docker搭建nginx服务

拉取nginx镜像

docker pull nginx:latest

启动nginx容器并且复制默认配置文件到宿主机

docker run -d <image-id>

# 将容器中的nginx配置文件复制到 /docker/nginx下
# 包括默认配置文件、html、conf.d
docker cp nginx:/etc/nginx/nginx.conf /docker/nginx/conf/nginx.conf
docker cp nginx:/etc/nginx/conf.d /docker/nginx/conf/conf.d
docker cp nginx:/usr/share/nginx/html /docker/nginx/html/

# 接下来删除刚才运行的容器

挂载nginx配置、html、日志文件的方式重新启动容器

# 默认使用80端口
# 指定时区为Asia/Shanghai,配置打印日志的时区
# 挂载nginx的日志,方便查看
docker run -d -p 80:80 --name nginx \
-v /docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /docker/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /docker/nginx/log:/var/log/nginx \
-v /docker/nginx/html:/usr/share/nginx/html \
-v /root/www:/www \
-e TZ=Asia/Shanghai \
container-id

容器启动成功实例

Nginx - ​一个高性能、灵活可靠的开源Web服务器

测试服务启动状态(成功启动)

Nginx - ​一个高性能、灵活可靠的开源Web服务器

5、nginx配置结构

  • 全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。
  • events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。
  • http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。
  • server块:配置虚拟主机的相关参数,一个http中可以有多个server。
  • location块:配置请求的路由,以及各种页面的处理情况
...  #全局块

events {	#events块
		...	 
}

http 		#http块
{
  	upstream servername{  #负载均衡
       ...
     }
  
    ...
    server #server块
    { 
        ...
        location	#location块
        {
            ...
        }
     }
}

6、nginx配置实战

6.1 使用nginx代理静态文件

代理静态文件的nginx配置

# 代理静态文件的配置我们放到conf.d目录下,.conf后缀
# 我们启动服务的时候将宿主机的/root/www目录映射到容器的/www目录下
# 希望通过访问 http://host:port/static/filename 获取静态文件

server {
    listen 80;
    server_name 127.0.0.1;

    location /static {
        alias /www/;
        index index.html index.htm;
        try_files $uri $uri/ =404;
    }
}

代理效果展示

在宿主机的/root/www目录下放一个test.jpg文件以测试效果

Nginx - ​一个高性能、灵活可靠的开源Web服务器

6.2 代理web服务

应用正以5001端口正常启动

Nginx - ​一个高性能、灵活可靠的开源Web服务器

代理web服务5001端口的nginx配置

# 这里没有使用域名   flask项目运行在5001端口
server {
    listen       80 default_server;
    server_name  <私有IP>;

    access_log   /var/log/nginx/myflask.access.log combined;
    error_log    /var/log/nginx/myflask.error.log notice;

    #error_page   404   /404.html;
    #location = /404.html {
    #    root    /usr/share/nginx/html
    #}

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location / {
        proxy_pass http://<私有IP>:5001;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        # enable server push for resources
        http2_push_preload on;
    }
}

代理效果展示

Nginx - ​一个高性能、灵活可靠的开源Web服务器

7、总结

  Nginx 是一个功能强大、高性能的服务器软件,适用于各种规模的网络应用和服务,可以提供高效、可靠的服务支持。具体用法和配置我们可以参考官网的文档和资源,利用其强大的功能构建高性能、可靠的网络应用和服务。文章来源地址https://www.toymoban.com/news/detail-470114.html

到了这里,关于Nginx - ​一个高性能、灵活可靠的开源Web服务器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OpenResty安装-(基于Nginx的高性能Web平台,可在Nginx端编码业务)

    首先你的Linux虚拟机必须联网 首先要安装OpenResty的依赖开发库,执行命令: 你可以在你的 CentOS 系统中添加 openresty 仓库,这样就可以便于未来安装或更新我们的软件包(通过 yum check-update 命令)。运行下面的命令就可以添加我们的仓库: 如果提示说命令不存在,则运行:

    2024年02月07日
    浏览(60)
  • 一个高性能类型安全的.NET枚举实用开源库

    从零构建.Net前后端分离项目 枚举应该是我们编程中,必不可少的了,今天推荐一个.NET枚举实用开源库,它提供许多方便的扩展方法,方便开发者使用开发。 01 项目简介 Enums.NET是一个.NET枚举实用程序库,专注于为枚举提供丰富的操作方法。它支持.NET Framework和.Net Core。它主

    2024年02月05日
    浏览(39)
  • linux系统下如何使用nginx作为高性能web服务器

    ✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN新星创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开

    2024年04月14日
    浏览(47)
  • Nginx搭配负载均衡和动静分离:构建高性能Web应用的完美组合

    目录 前言 一、Nginx简介 1.Nginx是什么 2.Nginx的特点 3.Nginx在哪使用 4.如何使用Nginx 5.Nginx的优缺点 6.Nginx的应用场景 二、负载均衡和动静分离 1.负载均衡 2.动静分离 三、Nginx搭载负载均衡并提供前后端分离后台接口数据 1.Nginx安装 2.tomcat负载均衡 3.负载均衡后台项目发布 四、前

    2024年02月06日
    浏览(49)
  • Nginx 入门指南:从入门到放弃(不是!)从零开始掌握高性能 Web 服务器

    Nginx 可以构建高性能、可靠的 Web 服务器。本文将带你了解 Nginx 的基本概念、安装方法以及常见配置,让你快速上手并搭建自己的 Web 服务器。 随着互联网的发展,构建稳定、高性能的 Web 服务器成为了许多开发者的重要需求。而在众多的服务器软件中, Nginx 以其出色的性能

    2024年04月15日
    浏览(58)
  • FastAPI + NGINX + Gunicorn:一步一步教你部署一个高性能的Python网页应用

    部署一个 FastAPI 应用到你的服务器是一项复杂的任务。如果你对 NGINX 、 Gunicorn 和 Uvicorn 这些技术不熟悉,可能会浪费大量的时间。如果你是刚接触 Python 语言不久或者希望利用 Python 构建自己的Web应用程序,本文的内容可能会让你第一次部署时更节省时间。 FastAPI 是用于开发

    2024年02月05日
    浏览(62)
  • Kafka 高可靠高性能原理探究

    在探究 Kafka 核心知识之前,我们先思考一个问题: 什么场景会促使我们使用 Kafka?  说到这里,我们头脑中或多或少会蹦出 异步解耦 和 削峰填谷等字样,是的,这就是 Kafka 最重要的落地场景。 异步解耦 :同步调用转换成异步消息通知,实现生产者和消费者的解耦。想象一

    2024年02月04日
    浏览(37)
  • 基于 k8s+docker 环境构建一个高可用、高性能的 web 集群。

    目录 项目架构图 项目描述 项目环境 环境准备 IP地址规划 关闭selinux和firewall 配置静态ip地址 修改主机名 升级系统(可做可不做) 添加hosts解析 项目步骤 一.使用ProcessOn设计了整个集群的架构,规划好服务器的IP地址,使用kubeadm安装k8s单master的集群环境(1个master+2个node节点

    2024年02月07日
    浏览(67)
  • 客户案例:高性能、大规模、高可靠的AIGC承载网络

    客户是一家AIGC领域的公司,他们通过构建一套完整的内容生产系统,革新内容创作过程,让用户以更低成本完成内容创作。 RoCE的计算网络 RoCE存储网络 1.不少于600端口200G以太网接入端口,未来可扩容至至少1280端口 1.不少于100端口200G以太网接入端口,未来可扩容至至少240端

    2024年02月11日
    浏览(51)
  • Kafka 最佳实践:构建可靠、高性能的分布式消息系统

    Apache Kafka 是一个强大的分布式消息系统,被广泛应用于实时数据流处理和事件驱动架构。为了充分发挥 Kafka 的优势,需要遵循一些最佳实践,确保系统在高负载下稳定运行,数据可靠传递。本文将深入探讨 Kafka 的一些最佳实践,并提供丰富的示例代码,帮助读者更好地应用

    2024年02月03日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包