1.寫好自己的Vapor項目
本地安裝好Vapor,然后創(chuàng)建出自己的項目:

image.png
然后根據(jù)自己需求修改route,我把routes.swift修改成了如下內(nèi)容:
import Vapor
func routes(_ app: Application) throws {
app.get { req in
return "訪問接口成功!"
}
}
2.將項目上傳GitHub
將項目上傳到GitHub,當然,你如果有別的地方存放代碼,也可以上傳到別的地方,等下在服務(wù)器上能夠拉取代碼下來即可。
這一步方法有很多,我使用的是GitHub桌面端上傳,地址是這個:https://github.com/flywo/SampleCode
3.服務(wù)端拉取代碼
使用git命令拉取GitHub代碼:
git clone https://github.com/flywo/SampleCode.git
拉取代碼過后,進入項目目錄,然后構(gòu)建項目
// 進入項目目錄
cd SampleCode/
// 構(gòu)建項目
swift build -c release
4.服務(wù)端安裝Supervisor
Supervisor 是一個進程控制系統(tǒng),可讓你輕松啟動、停止和重啟你的 Vapor 應(yīng)用程序。
apt-get install supervisor
安裝好后,使用vim創(chuàng)建出配置文件
vim /etc/supervisor/conf.d/sample-code.conf
然后輸入配置
[program:sample-code]
command=/root/SampleCode/.build/release/Run serve --env production
directory=/root/SampleCode/
autorestart=true
user=root
stdout_logfile=/var/log/supervisor/%(program_name)-stdout.log
stderr_logfile=/var/log/supervisor/%(program_name)-stderr.log
program:項目名字
command:命令的路徑
directory:項目路徑
autorestart:自動啟動開啟
user:用戶,由于我是在root用戶目錄下弄的,這里得改成root
后面兩個是日志輸出路徑。
5.啟動Supervisor
使用如下命令啟動Supervisor
supervisorctl reread
supervisorctl add sample-code
supervisorctl start sample-code
有可能add的時候,就已經(jīng)開啟了。
此時,可以在服務(wù)器上使用curl驗證是否已經(jīng)開啟。
curl localhost:8080
訪問接口成功!
6.Nginx將請求轉(zhuǎn)發(fā)給Vapor
此時外部是無法訪問8080端口的,需要通過反向代理服務(wù)器Nginx進行轉(zhuǎn)發(fā)。
// 進入/etc/nginx/sites-enabled目錄
cd /etc/nginx/sites-enabled
// 新建一個配置文件
vim samplecode.conf
// 配置文件中輸入轉(zhuǎn)發(fā)配置
server {
server_name code.yuhua.pub;
listen 8888;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_pass_header Server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass_header Server;
proxy_connect_timeout 3s;
proxy_read_timeout 10s;
}
}
我這邊是把8888接口給外部訪問,然后nginx轉(zhuǎn)發(fā)到vapor的8080端口。接下來重啟nginx。
systemctl restart nginx
7.訪問
最后,postman輸入請求看看吧:

image.png
至此,大功告成。有興趣的可以試試訪問我創(chuàng)建的這個接口:
http://code.yuhua.pub:8888