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

上海知名 网站设计公司如何做网络营销方案

上海知名 网站设计公司,如何做网络营销方案,网站备案 法人变更,免费商业源码论坛将 FastAPI 部署到生产服务器#xff08;全#xff09; 文章目录 将 FastAPI 部署到生产服务器#xff08;全#xff09;一、前言二、Fastapi项目 生产环境配置1. 准备环境2. 编写 FastAPI 应用3. 使用 Uvicorn 运行应用4. 配置生产级服务器 Gunicorn4.1 配置 Gunicorn 和 …将 FastAPI 部署到生产服务器全 文章目录 将 FastAPI 部署到生产服务器全一、前言二、Fastapi项目 生产环境配置1. 准备环境2. 编写 FastAPI 应用3. 使用 Uvicorn 运行应用4. 配置生产级服务器 Gunicorn4.1 配置 Gunicorn 和 Uvicorn Workers 5. 使用 Supervisor 管理应用 三、加SSl证书配置https1、将域名解析到你的服务器2、验证该域名是否解析成功3、lets Encrypt 证书申请1certbot安装2lets Encrypt 证书申请 四、配置nginx1、nginx安装2、配置nginx.conf3、重新运行nginx 五、运行测试1、查看这个服务输出的日志2、访问网站 一、前言 未来的开发者们请上座。 以下是本次用到的FastAPIUvicornGunicorn和Supervisor的简要介绍 FastAPIFastAPI 是一个现代、快速高性能的 web 框架用于构建 APIs基于 Python 3.6 类型提示。主要特性包括 快速非常高的性能接近于 NodeJS 和 Go由 Starlette 和 Pydantic 提供。快速编码提高开发速度约 200 至 300*。少出错减少约 40 的人为开发者错误。直观优秀的编辑器支持❤️ 的开发体验。易于使用设计易于使用和学习尽量减少开发时间。简洁最小化代码复杂性尽量减少开发者眼中的 bug。基于标准基于并完全兼容开放标准OpenAPI以前称为 Swagger和 JSON Schema。Django 风格的 ORM支持 Tortoise-ORM 和 Pydantic 模型。 UvicornUvicorn 是一个基于 asyncio 的 ASGI 服务器用于部署 Python 的异步 web 应用它的目标是成为 Python 异步服务器网关接口ASGI规范的最快实现之一。Uvicorn 支持 HTTP/1.1 和 WebSockets并且可以配合像 Starlette 和 FastAPI 这样的框架使用。 GunicornGunicorn ‘Green Unicorn’ 是一个 Python WSGI HTTP 服务器用于 UNIX。它是 Ruby 的 Unicorn 服务器的 Python 移植版。Gunicorn 的工作模式是预先分叉出多个进程来处理请求这使得它在处理并发请求时具有较高的效率。然而由于它基于同步的 WSGI因此在处理 WebSockets 或长连接时可能不如 Uvicorn 高效。 SupervisorSupervisor 是一个用 Python 开发的进程管理工具可以很方便的用来在 UNIX-like 系统不支持 Windows下启动、重启自动和关闭进程程序。除了对单个进程的管理外还可以同时启动、关闭多个进程实现对程序的批量管理。Supervisor 通常被用于管理服务器上的后台程序。 每个工具都有其特定的用途FastAPI 用于构建 APIUvicorn 和 Gunicorn 用于部署应用而 Supervisor 用于进程管理。在 Python 的 web 开发中这些工具经常一起使用。 二、Fastapi项目 生产环境配置 1. 准备环境 操作系统建议使用 Ubuntu、Debian 或 CentOS 等服务器操作系统。Python 环境安装 Python 3.7并创建虚拟环境来隔离项目依赖。sudo apt update sudo apt install python3 python3-venv python3-pip -y python3 -m venv venv source venv/bin/activate pip install fastapi uvicorn2. 编写 FastAPI 应用 确保你的 FastAPI 应用文件如 app.py结构清晰。例如 from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddlewareapp FastAPI(root_path/aiCentre) # aicentre为nginx中api路由名 # 启用CORS支持 app.add_middleware(CORSMiddleware,allow_origins[*],allow_credentialsTrue,allow_methods[*], # 或者只列出 [POST, GET, OPTIONS, ...] 等allow_headers[*], ) # 路由 app.get(/) async def read_root():return {message: Welcome to FastAPI!}注nginx.conf中后端配置参考如下如下注意root_path和路由要一致。 3. 使用 Uvicorn 运行应用 先在开发环境测试运行 uvicorn app:app --host 0.0.0.0 --port 8000访问 http://你的服务器IP:8000确认应用正常。 4. 配置生产级服务器 Gunicorn 生产环境通常需要使用反向代理如 Nginx和进程管理器如 Gunicorn 、 Supervisor。 4.1 配置 Gunicorn 和 Uvicorn Workers 安装 Gunicorn并配置多进程支持 pip install gunicorn uvicorn gunicorn app:app -w 4 -k uvicorn.workers.UvicornWorker --bind 0.0.0.0:8000访问 http://你的服务器IP:8000确认应用正常Gunicorn正常运行。 -w 4指定 4 个工作进程。-k uvicorn.workers.UvicornWorker使用 Uvicorn Worker。app:app第一个app是python文件名第二个是FastAPI的实例化的对象名。 5. 使用 Supervisor 管理应用 为确保应用在服务器重启后自动运行可以使用 Supervisor。 安装 Supervisorsudo apt install supervisor -y创建配置文件 /etc/supervisor/conf.d/fastapi.conf[program:fastapi] command/path/to/venv/bin/gunicorn app:app -w 4 -k uvicorn.workers.UvicornWorker --bind 127.0.0.1:8000 directory/path/to/your/project useryouruser autostarttrue autorestarttrue stderr_logfile/var/log/fastapi.err.log stdout_logfile/var/log/fastapi.out.log启用配置并启动sudo supervisorctl reread sudo supervisorctl update sudo supervisorctl start fastapi注1每一次更改都需要都执行一遍。 注2fastapi这个要求是文件名fastapi.conf 和 [program:fastapi]一致可以更换为你的 三、加SSl证书配置https 前置条件我默认你已经有域名了如果没有需要在国内的阿里云、腾讯云、华为云国外的Hostinger等云服务商都提供域名注册和域名解析服务。找一个你喜欢的就可以在这里我用的是阿里云注册的域名进行演示。 国内的域名需要提前备案15天左右。如果比较着急且只是演示可以用香港或者国外如Hostinger 云服务厂商提供的域名这样可以免掉备案的步骤 1、将域名解析到你的服务器 等待20s左右让其传播。 2、验证该域名是否解析成功 执行 nslookup 域名即可查询域名解析对象 nslookup bak.sligenai.cn看到解析到你的公网服务器的ip就完成了 3、let’s Encrypt 证书申请 1certbot安装 我们需要安装Certbot并用于申请let’s Encrypt 。 打开终端运行以下命令 sudo apt update sudo apt install certbot python3-certbot-nginx2let’s Encrypt 证书申请 sudo certbot --nginx -d bak.sligenai.cn如果是第一次可能会要你输入你的邮箱和让你输入A或Yes同意一些条款你按着输入就行。 然后就生成好证书了。记得保存好fullchain.pem和private.pem的路径这个等下会用到。 下面是我的fullchain.pem和private.pem的路径 /etc/letsencrypt/live/bak.sligenai.cn/fullchain.pem /etc/letsencrypt/live/bak.sligenai.cn/privkey.pem fullchain.pem和privkey.pem这两个文件对于配置Web服务器以安全地提供服务是非常重要的。下面是这两个文件的详细说明 fullchain.pem 含义fullchain.pem文件包含了你的域名证书以及任何中间证书的完整链但不包括根证书。这个文件是将你的证书(cert.pem)和中间证书(chain.pem)合并而成的。在大多数Web服务器的SSL配置中使用这个文件可以确保客户端如Web浏览器能够信任你的证书即能够通过证书链验证到达一个根CA该根CA已被客户端信任。用途在配置SSL/TLS时fullchain.pem通常用于服务器配置中指定证书文件。例如在Nginx中会用它来设置ssl_certificate指令。 privkey.pem 含义privkey.pem文件包含了你的私钥这是在生成CSR证书签名请求时创建的。私钥是安全通信的基础用于在SSL/TLS握手过程中对服务器端信息进行加密确保只有对应的公钥即你的服务器证书能够解密。私钥必须保密任何泄露都可能导致通信被解密。用途在Web服务器的SSL配置中privkey.pem用于设置私钥文件的位置。例如在Nginx配置中会用它来设置ssl_certificate_key指令。 总结 fullchain.pem包含你的域名证书和中间证书的全部内容用于服务器配置中指定证书链。privkey.pem包含你的私钥用于服务器配置中指定私钥文件的位置。 在配置SSL/TLS时确保正确使用这些文件同时保护好你的私钥避免安全风险。 注1如果你没有开放44380端口申请的时候会报错 注2如果你没有将域名解析到这个服务器的ip也会报错会出现类似下面的回复。 四、配置nginx 1、nginx安装 sudo apt update sudo apt install nginx2、配置nginx.conf 打开nginx.conf vim /etc/nginx/nginx.conf下面是一个nginx.conf模版 # nginx.conf worker_processes auto; # 与worker_connections乘积表示实际处理事件的总数events {worker_connections 1024; # 每个工作进程连接数 }http {include mime.types; # 文件扩展名与文件类型映射表default_type application/octet-stream;client_max_body_size 10M;sendfile on; # 减少网络报文数量keepalive_timeout 65; # 链接超时时间自动断开如果为0则无限时长。# HTTP server配置重定向到HTTPSserver {listen 80; # 监听80端口server_name bak.sligenai.cn; # 替换为你的域名return 301 https://$host$request_uri; # 强制重定向到HTTPS}# HTTPS server配置server {listen 443 ssl; # 监听443端口server_name bak.sligenai.cn; # 替换为你的域名ssl_certificate /etc/letsencrypt/live/bak.sligenai.cn/fullchain.pem; #替换为你的fuuchian.pemssl_certificate_key /etc/letsencrypt/live/bak.sligenai.cn/privkey.pem; #替换为你的privkey.pemroot /usr/share/nginx/html;location / {index index.html index.htm;rewrite / /login permanent; # 根据需求选择是否保留}location /vue-test { #替换为你的项目路由注意需要一开头的base一致index index.html index.htm;try_files $uri $uri/ /vue-test/index.html; #这个则是/路由/index.html 前面的部分一致不用动。 }location /abc { #替换为请求拦截器中的baseURL的地址如果没有后端则可以删掉这一部分add_header Cache-Control no-cache;add_header Pragma no-cache;add_header Expires 0;proxy_pass http://localhost:3777/; #后端地址}error_page 404 /404.html; # 自定义404页面location /404.html {internal;}error_page 500 502 503 504 /50x.html; # 自定义500页面location /50x.html {internal;}}}注1上面一共两个路由 /vue-test、 /abc 分别为前端和后端。 注2如果有多个项目则复制/vue-test 在旁边粘贴一个改掉路由即可。 注3 如果有其他域名则额外把上面这个server复制一遍即可。 3、重新运行nginx 检测nginx.conf是否配置正常 nginx -t如果报错则按照提示修改即可。 重新运行nginx sudo systemctl reload nginx五、运行测试 1、查看这个服务输出的日志 tail -f /var/log/gunicorn_stderr.log服务正常。 2、访问网站 可以看到后端可以正常访问。 恭喜你掌握了企业级 py后端的部署步骤。
http://www.dnsts.com.cn/news/133687.html

相关文章:

  • 做分销的官网网站在线网页代理太太猫
  • 阳高县网站建设南京律师网站建设
  • 网站班级文化建设方案淄博网站建设 leda.cc
  • 网站建设是广告吗网站开发实用技术2.8.5
  • 免费网站新域名专业做高端网站
  • 网站建设-部署与发布的题目企业名录查询器免费版
  • 做网站分页怎么做免费网站教程
  • 做淘宝客网站php百度云虚拟主机如何建设网站
  • 做网站卖东西赚钱么软件开发培训班机构
  • 免费发布的网站如何做家居网站
  • 别人做的网站怎么安全放在我的公司做游戏交易网站有哪些
  • 访问中国建设银行网站如何删除网站后台的文章
  • 大学新校区建设网站超级优化大师
  • 小微企业做网站网站制作培训一般要多少钱
  • 协会网站开发金坛常州做网站
  • 网站做投票thinkphp企业网站模板下载
  • 中国建设银行贵州省分行网站陕西省建设执业注册中心网站
  • 网站如何做cdn集约化网站群建设情况
  • 百度做网站吗网站建设创新互联
  • 网站如何做修改密码的相关验证遵义城乡和住房建设厅网站
  • 网站new图标计算机网页怎么制作
  • 北京京西建设集团网站网站架构包含哪几个部分
  • 网站播放器源码飞色网站商城怎么做
  • 做网站运作国珍网络推广服务费会计账务处理
  • 马和人做人和牛做网站网站后台fpt
  • 南宁网站建设_seo优化服务公司东莞品牌网站设计
  • 哪个协会要做网站建设啊关于网页制作
  • 正规网站模板设计想做广告行业怎么入手
  • 网站个性化制作建设工作室
  • 大连市城市建设投资集团网站中国室内设计联盟网站