反向代理 | 使用Nginx和Certbot托管您的应用
内容提要
最近,我创建了一个FastAPI应用作为多个前端服务的后端。如果任何前端访问https://some-api.somecompany.com/my-api,后端将会响应。安装步骤包括创建云平台上的虚拟机,安装Nginx,使用CertBot获取证书启用HTTPS,测试应用,确保虚拟机IP是静态的,设置cron job以在系统重启时运行应用。
关键要点
-
创建了一个FastAPI应用作为多个前端服务的后端。
-
安装步骤包括在云平台上创建虚拟机,安装Nginx,使用CertBot获取证书启用HTTPS。
-
创建DNS记录指向虚拟机的IP地址。
-
使用Ubuntu的apt包管理器安装Nginx。
-
编辑Nginx配置文件以设置反向代理。
-
使用snap安装CertBot并准备命令。
-
运行CertBot以获取HTTPS证书。
-
启动FastAPI应用并测试其是否正常工作。
-
确保虚拟机的IP地址是静态的。
-
设置cron job以在系统重启时自动运行FastAPI应用。
延伸问答
如何在云平台上创建虚拟机以托管FastAPI应用?
在云平台上创建虚拟机时,选择Ubuntu 24.04 LTS作为操作系统,并确保虚拟机的IP地址是静态的。
如何使用Nginx配置反向代理?
使用Ubuntu的apt包管理器安装Nginx,并编辑配置文件以设置反向代理,指向FastAPI应用的地址。
如何使用Certbot获取HTTPS证书?
使用snap安装Certbot,然后运行命令'sudo certbot --nginx'来获取HTTPS证书,并按照提示选择要激活HTTPS的域名。
如何确保FastAPI应用在系统重启后自动运行?
设置一个cron job,在系统重启时运行FastAPI应用的启动命令,确保应用能够自动启动。
FastAPI应用的测试步骤是什么?
在终端中进入应用目录,激活虚拟环境,然后使用命令'uvicorn main:app --host 0.0.0.0 --port 8080'启动应用,最后访问相应的URL进行测试。
为什么需要将虚拟机的IP地址设置为静态?
将虚拟机的IP地址设置为静态可以确保在虚拟机停止和重新启动后,IP地址不会改变,从而避免访问问题。