FastAPI + NGINX + Gunicorn:一步一步教你部署一个高性能的Python网页应用

一、前言

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

FastAPI 是用于开发API应用最受欢迎的Python库之一,用于开发API。它以其出色的性能和易用性而闻名。如果你在网页应用中使用机器学习模型,那么它很可能是你首选的工具。

NGINX、Gunicorn 和 Uvicorn 都是经过实践验证的技术,常被用作反向代理和ASGI服务器来部署Python网页应用。如果你熟悉 Django 或 Flask,你可能之前听说过它们中的一些。

接下来,我将展示如何结合这些工具来部署一个 FastAPI 网页应用。以下是主要内容:

  • 介绍FastAPI、NGINX、Gunicorn和Uvicorn的基础知识。

  • 配置Gunicorn + Uvicorn作为ASGI服务器。

  • 设置NGINX作为反向代理服务器。

  • 使用Let's Encrypt生成免费SSL证书。

二、技术框架介绍

2.1、FastAPI

FastAPI 是一个现代的、高性能的 Web 框架,用于使用 Python 构建 API,并基于标准类型提示。

它具有以下主要特点:

  • 高效运行:借助 Starlette 和 pydantic,FastAPI 提供了与 NodeJS 和 Go 类似的出色性能。FastAPI比Flask快得多,它实际上是Python最快的Web框架之一。唯一比 FastAPI 更快的框架是 Starlette(FastAPI 实际上是基于 Starlette 构建的)。

  • 快速开发:它可以显著提高开发速度。

  • 减少错误:减少了人为错误的可能性。

  • 直观易用:支持强大的编辑器功能、自动补全和更少的调试时间。

  • 简单易学:设计简单明了,您可以花更少时间阅读文档。

  • 减少重复代码量:最大限度地减少了代码重复。

  • 健壮可靠:提供生产就绪的代码和自动生成交互式文档功能。

  • 基于标准化:遵循 API、OpenAPI 和 JSON 模式等开放标准。

该框架旨在优化开发人员体验,使您能够以简洁的代码构建具备最佳实践且适合生产环境使用的 API。

2.2、Gunicorn

Gunicorn是用于Python应用程序的WSGI服务器的一种实现。

Gunicorn是一个符合WSGI标准的Web服务器,用于Python应用程序,它接收从客户端发送到Web服务器的请求,并将其转发到Python应用程序或Web框架(如Flask或Django)上,以便为请求运行适当的应用程序代码。

2.3、Uvicorn

与Flask框架不同,FastAPI不包含任何内置的开发服务器。因此,我们需要Uvicorn。它实施ASGI标准,速度快如闪电。ASGI 代表 异步服务器网关接口

  • Uvicorn是Python的ASGI Web服务器实现。

  • Uvicorn目前支持HTTP / 1.1和WebSockets。

2.4、Nginx

Nginx 是一个异步框架的 Web 服务器,也可以用作反向代理,负载平衡器 和 HTTP 缓存。该软件由 Igor Sysoev 创建,并于2004年首次公开发布。同名公司成立于2011年,以提供支持。Nginx 是一款免费的开源软件,根据类 BSD 许可证的条款发布。一大部分Web服务器使用 Nginx ,通常作为负载均衡器。

Nginx 具备以下特点:

  • 更快:单次请求会得到更快的响应;在高并发环境下,Nginx 比其他 WEB 服务器有更快的响应。

  • 高扩展性:Nginx 是基于模块化设计,由多个耦合度极低的模块组成,因此具有很高的扩展性。许多高流量的网站都倾向于开发符合自己业务特性的定制模块。

  • 高可靠性:Nginx 的可靠性来自于其核心框架代码的优秀设计,模块设计的简单性。另外,官方提供的常用模块都非常稳定,每个 worker 进程相对独立,master 进程在一个 worker 进程出错时可以快速拉起新的 worker 子进程提供服务。

  • 低内存消耗:一般情况下,10000个非活跃的 HTTP Keep-Alive 连接在 Nginx 中仅消耗 2.5MB 的内存,这是 Nginx 支持高并发连接的基础;单机支持10万以上的并发连接:理论上,Nginx 支持的并发连接上限取决于内存,10万远未封顶。

  • 热部署:master 进程与 worker 进程的分离设计,使得 Nginx 能够提供热部署功能,即在 7x24 小时不间断服务的前提下,升级 Nginx 的可执行文件。当然,它也支持不停止服务就更新配置项,更换日志文件等功能。

  • 最自由的 BSD 许可协议:这是 Nginx 可以快速发展的强大动力。BSD 许可协议不只是允许用户免费使用 Nginx ,它还允许用户在自己的项目中直接使用或修改 Nginx 源码,然后发布。

三、服务器安全设置

如果你的应用部署在局域网,你可能暂时不需要关注这块,但如果你的应用是部署在云服务器或者VPS,为了保障你的应用安全性,建议还是需要对服务器做一些必要性的安全设置,避免被攻击。

3.1、启用自动更新

首先,确保您的服务器拥有最新的软件:

sudo apt update && sudo apt upgrade -y

以下是在使用基于Debian的服务器时会看到的常见命令:

  1. 使用命令sudo apt update来更新系统上的软件包列表索引。

  2. 使用命令sudo apt upgrade -y将已安装的软件包升级到最新版本。使用-y标志可以跳过确认步骤,直接进行安装。

接下来,设置自动安全更新,这样就不必手动执行更新。为此,您需要安装并启用unnattended-upgrades

sudo apt install unattended-upgrades

安装完成后,编辑文件 /etc/apt/apt.conf.d/20auto-upgrades 并按照以下配置进行设置:

APT::Periodic::Update-Package-Lists "1";  # 每天自动更新软件包列表
APT::Periodic::Unattended-Upgrade "1";    # 系统将自动升级到最新版本的软件包
APT::Periodic::AutocleanInterval "7";     # 每周运行一次自动清理操作,删除旧的和不必要的包文件

最后,在文件 /etc/apt/apt.conf.d/50unattended-upgrades 中进行编辑,以确保系统在需要内核更新时自动重新启动:

Unattended-Upgrade::Automatic-Reboot "true";

完成以上步骤后,您的系统将自动执行安全更新,并在需要时重新启动以应用内核更新。

3.2、创建非root用户

为了减少黑客攻击造成的损害,创建非root用户是必要的。以下是一些命令来创建非root用户和设置SSH密钥登录:

  • 创建一个新的非root用户:
sudo adduser fastapi-user # 将fastapi-user替换为您喜欢的用户名
  • 将该用户添加到sudo组以获得管理员权限:
sudo usermod -aG sudo fastapi-user # 将fastapi-user替换为您创建的用户名
  • 使用新创建的用户登录服务器:
su - fastapi-user # 使用新用户登录,将fastapi-user替换为您创建的用户名
  1. 设置使用SSH密钥进行身份验证:

如果您还没有SSH密钥,请在本地计算机上打开终端并运行以下命令(请注意将your-email-replace-with-your-email替换为您的实际电子邮件):

ssh-keygen -t ed25519 -C "your-email-replace-with-your-email"

这将生成一对SSH密钥。

复制公共SSH密钥并将其粘贴到远程服务器上(请注意将your-public-key-replace-with-your-public-key替换为实际公共密钥):

echo "your-public-key-replace-with-your-public-key" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
  • 禁用root登录和密码身份验证:

使用sudo权限编辑/etc/ssh/sshd_config文件(例如使用sudo vim /etc/ssh/sshd_config命令)。

将以下行的值更改为所示:

PermitRootLogin no
PasswordAuthentication no

这将禁止root用户登录和使用密码进行SSH身份验证。

  • 保存并关闭文件后,重新启动SSH服务以使更改生效:
sudo service ssh restart

一旦完成上述步骤,请使用新创建的非root用户和SSH密钥进行登录,并确保禁用了root登录和密码身份验证。

3.3、其他安全措施

大多数云提供商都提供防火墙服务。如果您的云提供商不提供防火墙服务,您可以手动配置防火墙来限制传入流量只能到达必要的端口,例如8044322端口。

另外,您还可以安装并配置fail2ban来预防暴力身份验证攻击。Fail2ban是一个用于保护Linux服务器免受恶意登录尝试的工具。它监视系统日志文件,并根据设定的规则自动禁止源IP地址。

如果您想了解更多关于保护Linux服务器的最佳实践,请查看Linode提供的相关指南。这些指南将为您提供有关如何设置和增强服务器安全性的详细信息。

四、安装软件工具

为了安装必要的软件工具,请按照以下步骤执行:

4.1、安装Python:

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.11 python3.11-venv -y

4.2、安装Supervisor和NGINX:

sudo apt install supervisor nginx -y

Supervisor 是一个用于类Unix操作系统(包括Linux)的进程控制系统,它用于监视和管理程序的进程。NGINX是一种常用的多功能软件,通常用作反向代理来部署Web应用程序。

4.3、启用并启动Supervisor:

sudo systemctl enable supervisor
sudo systemctl start supervisor

使用enable命令将确保 Supervisor 在启动时自动启动,并使用start命令立即启动 Supervisor 服务。

完成上述步骤后,您已成功安装 Python、Supervisor 和 NGINX,并已启用并启动了 Supervisor 服务。

五、设置 FastAPI 应用程序

首先,将示例应用程序克隆到/home/fastapi-user目录下:

git clone https://github.com/dylanjcastillo/fastapi-nginx-gunicorn

这将从公共存储库克隆代码。如果您要部署私有GitHub存储库中的应用程序,请设置GitHub部署密钥并使用该密钥克隆存储库。

接下来,创建一个虚拟环境并激活它:

cd /home/fastapi-user/fastapi-nginx-gunicorn
python3.11 -m venv .venv
source .venv/bin/activate

这些命令将使您进入项目目录,并在其中创建一个虚拟环境并激活它。一旦成功激活,您的命令行提示符前面应显示.venv

现在,使用 requirements.txt 文件中指定的依赖项安装所需的软件包:

pip install -r requirements.txt

这将在当前虚拟环境中安装fastapigunicornuvicorn等软件包。

为了验证一切是否顺利,运行应用程序:

uvicorn main:app

运行此命令时不应出现任何错误。您还可以打开新终端窗口,并连接到服务器,然后使用以下命令发出请求来验证它是否正常工作:

curl http://localhost:8000

您应该会收到以下响应:

{"message":"It's working!"}

现在您已经成功运行了FastAPI应用程序,接下来将配置Gunicorn作为WSGI服务器。

六、配置Gunicorn

配置Gunicorn有两个步骤。首先,明确指定 Gunicorn 的配置要求。其次,设置Supervisor程序来运行Gunicorn。

6.1 设置Gunicorn

首先,在项目目录中创建一个名为 gunicorn_start 的文件:

vim gunicorn_start

然后,将以下内容添加到文件中:

#!/bin/bash

NAME=fastapi-app
DIR=/home/fastapi-user/fastapi-nginx-gunicorn
USER=fastapi-user
GROUP=fastapi-user
WORKERS=3
WORKER_CLASS=uvicorn.workers.UvicornWorker
VENV=$DIR/.venv/bin/activate
BIND=unix:$DIR/run/gunicorn.sock
LOG_LEVEL=error

cd $DIR
source $VENV

exec gunicorn main:app \
  --name $NAME \
  --workers $WORKERS \
  --worker-class $WORKER_CLASS \
  --user=$USER \
  --group=$GROUP \
  --bind=$BIND \
  --log-level=$LOG_LEVEL \
  --log-file=-

这是您的设定解释:

  • 第1行表示此脚本将由bash shell执行。

  • 第3行至第11行指定您将传递给Gunicorn的配置选项。大多数参数都是直观的,除了 WORKERSWORKER_CLASSBIND

  • WORKERS:定义要使用的工作进程数量,通常建议使用CPU核心数+1。

  • WORKER_CLASS:指定要使用的工作进程类型。在此示例中,您指定Uvicorn Worker作为ASGI服务器。

  • BIND:指定Gunicorn绑定到的 server socket

  • 第13行和第14行将当前位置更改为项目目录并激活虚拟环境。

  • 第16行至第24行使用指定的参数运行Gunicorn。

保存并关闭文件。然后,通过运行以下命令使其可执行:

chmod u+x gunicorn_start

最后,在项目目录中创建一个文件夹 run ,用于存储您在参数中定义的Unix套接字文件BIND:

mkdir run

6.2 配置Supervisor

首先,在项目目录中创建一个名为 logs 的目录,用于存储应用程序的错误日志:

mkdir logs

接下来,通过运行以下命令创建Supervisor的配置文件:

sudo vim /etc/supervisor/conf.d/fastapi-app.conf

复制并粘贴以下内容到文件中:

[program:fastapi-app]
command=/home/fastapi-user/fastapi-nginx-gunicorn/gunicorn_start
user=fastapi-user
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/home/fastapi-user/fastapi-nginx-gunicorn/logs/gunicorn-error.log

此配置文件指定了之前创建的 gunicorn_start 脚本,并设置了 fastapi-user 作为用户。Supervisor 将在服务器启动时启动应用程序,并在应用程序失败时重新启动它。错误日志将记录在项目目录下 logs/gunicorn-error.log 文件中。

重新加载Supervisor配置并重启服务,通过运行以下命令:

sudo supervisorctl reread
sudo supervisorctl update

最后,您可以通过运行以下命令检查程序的状态:

sudo supervisorctl status fastapi-app

如果一切顺利,fastapi-app 服务的状态应显示为 RUNNING

您还可以通过打开新的终端窗口,连接到服务器,并使用以下命令发出GET请求来测试它:

curl --unix-socket /home/fastapi-user/fastapi-nginx-gunicorn/run/gunicorn.sock localhost

您应该会看到以下输出:

{"message":"It's working!"

最后,如果您对代码进行了更改,可以通过运行以下命令重新启动服务以应用更改:

sudo supervisorctl restart fastapi-app

现在您已经拥有一个使用Gunicorn和Uvicorn作为ASGI服务器的应用程序。接下来,您将使用NGINX设置反向代理服务器。

七、配置NGINX

为您的项目创建一个新的 NGINX 配置文件:

sudo vim /etc/nginx/sites-available/fastapi-app

打开NGINX配置文件并粘贴以下内容:

upstream app_server {
    server unix:/home/fastapi-user/fastapi-nginx-gunicorn/run/gunicorn.sock fail_timeout=0;
}

server {
    listen 80;

    # add here the ip address of your server
    # or a domain pointing to that ip (like example.com or www.example.com)
    server_name XXXX;

    keepalive_timeout 5;
    client_max_body_size 4G;

    access_log /home/fastapi-user/fastapi-nginx-gunicorn/logs/nginx-access.log;
    error_log /home/fastapi-user/fastapi-nginx-gunicorn/logs/nginx-error.log;

    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;

        if (!-f $request_filename) {
            proxy_pass http://app_server;
            break;
        }
        }
}

这是 NGINX 配置文件。它的工作原理如下:

  • 第 1 行到第 3 行app_server定义了一个称为NGINX 将代理请求的服务器集群。请求被重定向到位于 的 Unix socket file /home/fastapi-user/fastapi-nginx-gunicorn/run/gunicorn.sock。设置fail_timeout=0告诉 NGINX 不要将服务器视为失败,即使它没有响应。

  • 第 1 行到第 5 行定义了 NGINX 将用于处理请求的虚拟服务器的配置。在本例中,它侦听端口 80。将 XXXX 替换为 IP 或站点名称。

  • 第 12 行和第 13 行指定keepalive_timeout设置客户端可以保持持久连接打开的最长时间,并client_max_body_size设置 NGINX 允许的客户端请求正文的大小限制。

  • 第 15 行和第 16 行指定 NGINX 将写入其访问和错误日志的位置。

  • 第 18 至 27 行定义了 NGINX 将如何处理对根目录的请求/。您提供一些规范来处理标头,并设置一个指令来将请求代理到您app_server之前定义的。

通过运行以下命令从文件创建符号链接来启用站点配置sites-availablesites-enabled

sudo ln -s /etc/nginx/sites-available/fastapi-app /etc/nginx/sites-enabled/

测试配置文件是否正常并重启NGINX:

sudo nginx -tsudo systemctl restart nginx

如果一切顺利,现在您应该能够从浏览器或使用curl. 您应该再次看到以下输出:

{"message":"It's working!"}

您现在应该已经运行了 FastAPI 应用程序,并且 Gunicorn+Uvicorn 作为 ASGI 服务器,NGINX 在它们前面作为反向代理。

7.1、权限错误

如果出现权限错误,表示NGINX无法访问Unix socket,您可以将用户 www-data(通常是NGINX进程运行的用户)添加到fastapi-user组中。您可以使用以下命令:

sudo usermod -aG fastapi-user www-data

如果您还没有为API应用购买域名,则不需要往下阅读了。如果您已经有域名,请继续执行下一步以获取SSL证书并启用HTTPS。

八、使用 Certbot 获取免费 SSL 证书

这仅适用于您希望为其获取SSL证书的域名。如果您使用的是Ubuntu,则可以跳过此步骤。否则,您首先需要安装snapd

sudo apt install snapd

接下来,确保您拥有最新可用版本:

sudo snap install core; sudo snap refresh core

安装Certbot并确保certbot命令可执行:

sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot

接下来,通过以交互方式运行以下命令为您的域名生成证书:

sudo certbot --nginx

最后,Certbot将自动处理您证书的续订。要测试它是否有效,请运行以下命令:

sudo certbot renew --dry-run

如果一切顺利,您应该会看到 Congratulations,all simulated renewals succeeded… 消息。

现在,您应该能够通过HTTPS成功发送请求。

九、结论

本篇文章介绍了如何使用 NGINXGunicornUvicorn 来部署 FastAPI 应用程序。FastAPI 是最流行的 Python Web 框架之一。它已成为部署机器学习驱动的 Web 应用程序的首选,因此你希望持续关注AI领域,并希望能做一定的应用开发实践,熟悉它还是挺有帮助的。

在这篇文章中您了解到:

  • 为什么以及何时应该使用 FastAPI、NGINX、Gunicorn 和 Uvicorn

  • 如何设置 Gunicorn+Uvicorn 作为 ASGI 服务器

  • 如何使用Supervisor来运行Gunicorn

  • 如何使用 certbot 配置 NGINX 并生成免费的 SSL 证书

如果你对这篇文章感兴趣,而且你想要了解更多关于AI领域的实战技巧,可以关注「技术狂潮AI」公众号。在这里,你可以看到最新最热的AIGC领域的干货文章和案例实战教程。

原文地址:https://blog.csdn.net/FrenzyTechAI/article/details/132696546

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


文章浏览阅读3.7k次,点赞2次,收藏5次。Nginx学习笔记一、Nginx 简介1. 什么是Nginx2. 反向代理3. 负载均衡4. 动静分离二、Nginx基本使用1. Nginx常用的操作命令2. Nginx的配置文件提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、Nginx 简介1. 什么是Nginx2. 反向代理3. 负载均衡4. 动静分离二、Nginx基本使用1. Nginx常用的操作命令2. Nginx的配置文件一、Nginx 简介1. 什么是Nginx  Nginx(“engine x”)是一个_nginx代理
文章浏览阅读1.7w次,点赞14次,收藏61次。我们在使用容器的过程中需,有时候需要对容器中的文件进行修改管理,如果不做文件映射的化,我们使用docker exec -it 容器ID/容器名 /bin/bash 才能进入nginx中的文件里面如图。架设在客户机与目标主机之间,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将原本要直接发送到web服务器上的http请求发送到代理服务器中。A想要组C的房子,但是A并不认识C所以租不到,但是B认识C,A找B帮忙租到了C的房子。客户端代理服务器服务器。_docker nginx 配置
文章浏览阅读1.4k次。当用户在访问网站的过程中遇到404错误时,通常情况下应该显示一个友好的错误页面,而不是仅仅显示一个简单的错误提示。在Nginx中,可以通过配置来实现404错误自动跳转到首页的功能。如果您的网站使用动态内容生成页面(如PHP或其他服务器端语言),则应相应地修改配置以适应您的网站架构。这样,当用户访问一个不存在的页面时,Nginx会自动将其重定向到首页。为了使配置生效,需要重新加载Nginx配置。首先,需要打开Nginx的配置文件。现在,当用户访问一个不存在的页面时,Nginx会自动将其重定向到首页。_nginx 404 重定向
文章浏览阅读2.7k次。docker 和 docker-compose 部署 nginx+mysql+wordpress 实战_docker wordpress mariadb
文章浏览阅读1.3k次。5:再次启动nginx,可以正常启动,可以在任务管理器中查看到nginx的进程。重新启动下 直接访问8090端口 ok 访问成功。1 :查看80端口占用情况,pid的值为3960。3:在运行中输入regedit打开注册表编辑器。2: 通过以下命令查看3960所对应的服务名称。4:找到Start,右键修改将其制改为4。_nginx80端口无法访问
文章浏览阅读3.1w次,点赞105次,收藏182次。高性能:Nginx 被设计为能够处理大量并发连接而不显著增加系统负担。它采用异步事件驱动的架构,可以有效地处理高流量的 Web 请求。负载均衡:Nginx 支持负载均衡,可以将请求分发到多个后端服务器,以提高网站性能和可用性。反向代理:Nginx 可以充当反向代理,将客户端请求转发到后端服务器,隐藏后端服务器的真实 IP 地址,增加安全性和可扩展性。静态文件服务:Nginx 可以高效地提供静态文件(如 HTML、CSS、JavaScript、图像等)的服务,减轻应用服务器的负担。
文章浏览阅读976次。nginx作为常用的web代理服务器,某些场景下对于性能要求还是蛮高的,所以本片文章会基于操作系统调度以及网络通信两个角度来讨论一下Nginx性能的优化思路。我们的大学教程大部分讲述七层模型,实际上现代网络协议使用的都是四层模型,如下图,应用层报文经过四层的首部封装到对端。对端链路层拆开首部查看mac地址是自己在网上,拆开ip首部查看目的地址是不是自己,然后到达传输层应用层完成报文接收。文章是基于原有个人知识基础上,对旧知识进行巩固,以及新知识实践学习。
文章浏览阅读5.4k次,点赞9次,收藏15次。最后再说一种情况,就是后端处理了跨域,就不需要自己在处理了(这里吐槽下,某些后端工程师自己改服务端代码解决跨域,但是又不理解其中原理,网上随便找段代码黏贴,导致响应信息可能处理不完全,如method没添加全,headers没加到点上,自己用的那个可能复制过来的并不包含实际项目所用到的,没有添加options请求返回状态码等,导致Nginx再用通用的配置就会可能报以下异常)里面的就好了,因为这里如果是预检请求直接就ruturn了,请求不会再转发到59200服务,如果也删除了,就会报和情况1一样的错误。_nginx 允许跨域
文章浏览阅读2.5k次。项目配置了多个域名,如下,php 代码中有获取的值。当访问a.demo.com时,其获取的值是符合预期的。但是当访问b.demo.com时,其获取的值还是a.demo.com,导致代码中的判断出现错误。_nginxservername多个域名
文章浏览阅读1k次,点赞2次,收藏5次。采用YAML manifest的方式来安装ingress-nginx,用registry.lank8s.cn镜像库来替换 registry.k8s.io的库。_ingress-nginx安装
文章浏览阅读1.6k次,点赞2次,收藏2次。在windows平台编译nginx_windows 编译nginx
文章浏览阅读5.8k次,点赞2次,收藏18次。nginx [engine x] 是 HTTP 和反向代理服务器、邮件代理服务器和通用 TCP/UDP 代理服务器。nginx 的特点是占有内存少,并发能力强,事实上 nginx 的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。在高连接并发的情况下,nginx是Apache服务器不错的替代品,能够支持高达50000个并发连接数的响应。使用epoll and kqueue作为开发模型。_nginx
文章浏览阅读2k次。Linux启动(systemctl start nginx)nginx服务时出现:Failed to start nginx.service: Unit not found._为什么nginx的systemctl start nginx.service不能使用
文章浏览阅读1.3k次。重启之后,打开浏览器,输入http://localhost:8900/myBaidu,这时候就会自动的跳转到百度的页面。按照我们不同的需求修改nginx文件夹中的nginx-1.16.1conf里面的nginx.conf文件。启动nginx:打开nginx的文件夹,然后双击nginx.exe文件,启动nginx。打开之后假设我们需要跳转到百度则在配置文件nginx.conf中的下面加上。1、打开任务管理器关闭nginx的进程。端口在配置文件的(下图)进行查看nginx端口。_nginx 代理百度
文章浏览阅读5.7k次,点赞5次,收藏3次。nginx重定向问题解决(rewrite or internal redirection cycle)_rewrite or internal redirection cycle while internally redirecting to "/inde
文章浏览阅读1.3k次。请注意,上述命令假设 Nginx 已经在系统的 PATH 环境变量中配置。如果没有,请提供正确的 Nginx 安装路径,或者在命令中使用完整的路径来替换。将该命令与所有 Nginx 进程的 PID 一起使用,以终止所有正在运行的 Nginx 进程。此命令将启动一个新的 Nginx 进程来重新加载配置文件并重新启动服务器。使用以下命令来终止所有 Nginx 进程(使用上面的 PID 替换。的进程以及它们的 PID。打开命令提示符(CMD)。此命令将列出所有名为。选项来强制终止进程。_windows 怎么关闭nginx
文章浏览阅读2.7k次,点赞2次,收藏7次。包括 Netflix、GitHub 和 WordPress。Nginx 可以用作 Web 服务器、负载均衡器、反向代理和 HTTP 缓存等。_ubuntu安装nginx
文章浏览阅读915次。轻松搭建短域名短链接服务系统,可选权限认证,并自动生成证书认证把nginx的http访问转换为https加密访问,完整步骤和代码。_nginx 短链代理
文章浏览阅读1.1k次,点赞35次,收藏24次。流媒体方案之Nginx——实现物联网视频监控项目Nginx是什么Nginx在流媒体方案中的位置软硬件准备移植编译Nginx运行Ngnix测试流媒体方案浏览器播放_nginx-rtmp-module
文章浏览阅读1.9k次。nginx 配置 wss 协议转发 ws 服务器_nginx 配置wss