在VPS上部署Swift应用程序:高级指南

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

在VPS上部署Swift应用程序:面向高级用户的分步指南

您已经使用Vapor框架创建了一个出色的Swift服务器端应用程序。现在需要将其投入生产环境。在VPS上部署Swift应用程序需要理解Swift在Linux上的工作特性、配置服务器环境以及使用正确的工具来确保稳定性和性能。在本高级指南中,我们将涵盖完整流程:从在Linux上编译到配置CI/CD、使用Docker和Supervisor。



1. 服务器准备与Swift在Linux上的编译

首先需要了解:macOS和Linux上的Swift是不同的生态系统。要在VPS(Ubuntu 22.04 LTS)上部署,需要进行交叉编译或直接在服务器上构建。建议在服务器上构建,以避免库相关的问题。



1.1 在Ubuntu上安装Swift

通过SSH连接到服务器并安装必要的依赖项:

sudo apt updatesudo apt install -y curl git clang libicu-dev libcurl4-openssl-dev libssl-dev \    libsqlite3-dev libxml2-dev pkg-config uuid-dev

# 下载最新版本的Swift Toolchainwget https://download.swift.org/swift-5.9.2-release/ubuntu2204/swift-5.9.2-RELEASE/swift-5.9.2-RELEASE-ubuntu22.04.tar.gztar -xzf swift-5.9.2-RELEASE-ubuntu22.04.tar.gzsudo mv swift-5.9.2-RELEASE-ubuntu22.04 /usr/share/swift

# 添加到PATHecho 'export PATH=/usr/share/swift/usr/bin:$PATH' >> ~/.bashrcsource ~/.bashrcswift --version


1.2 克隆并构建项目

克隆仓库并构建应用程序的发布版本:

git clone https://github.com/your-username/your-swift-app.gitcd your-swift-appswift build --configuration release

构建成功后,二进制文件将位于.build/release/YourApp。手动测试运行:

./.build/release/YourApp serve --hostname 0.0.0.0 --port 8080


2. 配置生产环境:Nginx和Supervisor

直接让Swift应用程序监听80端口是不好的实践。我们使用Nginx(反向代理)+ Supervisor(进程管理器)的组合。



2.1 Nginx配置

安装Nginx并创建配置,将请求代理到我们的Swift应用程序:

sudo apt install nginxsudo nano /etc/nginx/sites-available/yourapp

文件内容:

server {    listen 80;    server_name yourdomain.com www.yourdomain.com;

location / { proxy_pass http://127.0.0.1:8080; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }

# 大文件配置(如果需要) client_max_body_size 50m;}

激活配置并检查:

sudo ln -s /etc/nginx/sites-available/yourapp /etc/nginx/sites-enabled/sudo nginx -tsudo systemctl restart nginx


2.2 配置Supervisor实现自动重启

Supervisor将监控进程并在崩溃时自动重启。安装并创建配置:

sudo apt install supervisorsudo nano /etc/supervisor/conf.d/yourapp.conf

配置内容:

[program:yourapp]command=/home/ubuntu/your-swift-app/.build/release/YourApp serve --hostname 0.0.0.0 --port 8080directory=/home/ubuntu/your-swift-appuser=ubuntuautostart=trueautorestart=truestartretries=3stderr_logfile=/var/log/yourapp.err.logstdout_logfile=/var/log/yourapp.out.logenvironment=ENVIRONMENT="producti                

博客

书籍推荐