引言:为什么要在VPS上部署Swift?
Swift不仅仅是用于iOS和macOS应用程序的语言。得益于Vapor框架和对Linux的原生支持,您可以使用Swift创建高性能的服务器端解决方案。将此类应用程序部署到VPS(虚拟专用服务器)上,为创建自己的API、网站和微服务提供了可能性。
在本文中,我们将介绍在运行Ubuntu 22.04的远程服务器上部署Swift应用程序的完整流程。您将学习如何准备环境、编译项目、配置自动启动和代理服务器。本指南既适合新手,也适合希望系统化知识的有经验的开发者。
1. 服务器准备与安装Swift
第一步是租用VPS(建议2核,2 GB RAM)。通过SSH连接后,执行系统更新并安装依赖项。
1.1. 基本设置
ssh root@您的服务器IPapt update && apt upgrade -yapt install curl git build-essential pkg-config libssl-dev zlib1g-dev -y1.2. 安装Swift工具链
对于Ubuntu 22.04,请使用官方的Swift发行版。在swift.org上查看最新版本。
# 下载Swift 5.9(示例)wget https://download.swift.org/swift-5.9-release/ubuntu2204/swift-5.9-RELEASE/swift-5.9-RELEASE-ubuntu22.04.tar.gz
# 解压tar -xzf swift-5.9-RELEASE-ubuntu22.04.tar.gzmv swift-5.9-RELEASE-ubuntu22.04 /usr/share/swift
# 添加到PATHecho 'export PATH=/usr/share/swift/usr/bin:$PATH' >> ~/.bashrcsource ~/.bashrc
# 验证swift --version2. 编译与配置应用程序
我们来部署一个典型的Vapor应用程序。假设您的项目已经在Git仓库中。
2.1. 克隆与构建
cd /var/www/git clone https://github.com/您的用户名/您的仓库.git myappcd myapp
# 以Release模式构建swift build -c release编译成功后,可执行文件将位于.build/release/Run。Vapor默认使用8080端口。
2.2. 运行与测试
# 临时运行(按Ctrl+C停止).build/release/Run serve --hostname 0.0.0.0 --port 8080检查运行情况:在浏览器中打开http://您的服务器IP:8080。如果您看到响应,说明一切正常。
3. 配置systemd以实现自动启动
为了让应用程序在服务器重启后自动启动,我们将创建一个systemd服务。
3.1. 创建服务
nano /etc/systemd/system/myapp.service粘贴以下代码(将路径替换为您自己的):
[Unit]Description=Swift Vapor ApplicationAfter=network.target
[Service]Type=simpleUser=www-dataGroup=www-dataWorkingDirectory=/var/www/myappExecStart=/var/www/myapp/.build/release/Run serve --hostname 127.0.0.1 --port 8080Restart=on-failureRestartSec=5
[Install]WantedBy=multi-user.target3.2. 激活与启动
systemctl daemon-reloadsystemctl enable myappsystemctl start myappsystemctl status myapp如果状态显示active (running),则表示服务正在运行。现在应用程序将自动启动。
4. 配置Nginx和SSL(HTTPS)
Nginx代理服务器对于处理静态文件、负载均衡和添加SSL证书是必需的。
4.1. 安装Nginx
apt install nginx -y4.2. 代理配置
为您的域名或IP创建配置文件:
nano /etc/nginx/sites-available/myappserver { listen 80; server_name 您的域名.ru;
location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $ho