关于宝塔面板部署Fastapi的小坑

        本人在项目部署这一块实属弟中弟,最近在使用宝塔面板部署fastapi框架写的小项目时,遇到了项目正在运行,但是发送请求却Internal Server Error的问题。在网上查看了各种资料,大多都是让我们看看云服务器安全组以及服务器防火墙是否开放相关端口(这里安全组和防火墙开放端口的方法就不做赘述了)或者安装screen绕过来解决问题。但是我确认自己的端口是开放的,直接使用python运行也是没问题的,只有在使用gunicorn时,才会遇到此问题。

        经过我的不断尝试,发现只要将宝塔默认配置中的worker_class改成如下便可以正常运行了,

奈何本人水平实在是菜,不知其原理,特发此文记录这个问题。希望可以对其他遇到此类问题同学能够有所帮助,也希望大佬可以教导我更好或者正确的做法。

 

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是宝塔面板部署网易云API的步骤: 1. 在宝塔面板创建一个网站并绑定域名。 2. 在网站的根目录下创建一个目录,比如说“api”。 3. 在宝塔面板中安装Node.js环境,选择好对应的版本。 4. 打开SSH终端,进入到网站的根目录下的“api”目录中,执行以下命令安装PM2: ``` npm install pm2 -g ``` 5. 在“api”目录中创建一个名为“app.js”的文件,并将以下代码复制到文件中: ``` const express = require('express'); const bodyParser = require('body-parser'); const axios = require('axios'); const app = express(); app.use(bodyParser.urlencoded({ extended: false })); app.use(bodyParser.json()); app.get('/', (req, res) => { res.send('Hello World!'); }); app.post('/netease/api', (req, res) => { const url = req.body.url; const data = req.body.data; const cookie = req.body.cookie; const referer = req.body.referer; axios({ method: 'post', url, data, headers: { Cookie: cookie, Referer: referer, } }).then(response => { res.send(response.data); }).catch(error => { res.send(error); }); }); const port = process.env.PORT || 3000; app.listen(port, () => { console.log(`Server running on port ${port}`); }); ``` 6. 修改代码中的端口号(如果需要的话)。 7. 执行以下命令启动API服务: ``` pm2 start app.js --name netease-api ``` 8. 在宝塔面板中添加一个反向代理,将“/netease/api”路由到“http://127.0.0.1:3000/netease/api”(这里的端口号需要和代码中的端口号保持一致)。 9. 保存并测试API服务是否正常运行。 希望以上步骤可以帮助到你!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值