1.写好自己的Vapor项目
本地安装好Vapor,然后创建出自己的项目:
image.png
然后根据自己需求修改route,我把routes.swift修改成了如下内容:
import Vapor
func routes(_ app: Application) throws {
app.get { req in
return "访问接口成功!"
}
}
2.将项目上传GitHub
将项目上传到GitHub,当然,你如果有别的地方存放代码,也可以上传到别的地方,等下在服务器上能够拉取代码下来即可。
这一步方法有很多,我使用的是GitHub桌面端上传,地址是这个:https://github.com/flywo/SampleCode
3.服务端拉取代码
使用git命令拉取GitHub代码:
git clone https://github.com/flywo/SampleCode.git
拉取代码过后,进入项目目录,然后构建项目
// 进入项目目录
cd SampleCode/
// 构建项目
swift build -c release
4.服务端安装Supervisor
Supervisor 是一个进程控制系统,可让你轻松启动、停止和重启你的 Vapor 应用程序。
apt-get install supervisor
安装好后,使用vim创建出配置文件
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的时候,就已经开启了。
此时,可以在服务器上使用curl验证是否已经开启。
curl localhost:8080
访问接口成功!
6.Nginx将请求转发给Vapor
此时外部是无法访问8080端口的,需要通过反向代理服务器Nginx进行转发。
// 进入/etc/nginx/sites-enabled目录
cd /etc/nginx/sites-enabled
// 新建一个配置文件
vim samplecode.conf
// 配置文件中输入转发配置
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转发到vapor的8080端口。接下来重启nginx。
systemctl restart nginx
7.访问
最后,postman输入请求看看吧:
至此,大功告成。有兴趣的可以试试访问我创建的这个接口:
http://code.yuhua.pub:8888
网友评论