本文已参与「新人创作礼」活动,一起开启掘金创作之路
部署服务器
Nginx(反向代理)
# 安装nginx
apt install nginx -y
# 启动
nginx
# 访问
http://localhost/
# 查看配置文件
cat /etc/nginx/sites-enabled/default
重点:sites-enabled中是配置文件,不可以修改,sites-available中的配置文件可以修改,但记住要备份配置文件(万一你改毁了呢)
前端部署及自动部署(coding)
将前端的内容放到自己的服务器上运行
SSH的配置(实现自动部署的第一步)
ssh-keygen # 生成公钥私钥
cd .ssh/
# id_rsa 私钥 id_rsa.pub 公钥
#将公钥复制给目标即可
- 将前端仓库克隆到服务器文件中
vim /etc/nginx/sites-available/default
#修改nginx配置文件中的目标路径
- 让提交自动化(通过配置
yaml文件的WebHooks部署脚本)
webhooks:可以让前端提交代码自动同步
# 下载 Releases
wgethttps://github.com/fzf404/GoWebHooks/releases/download/v2.2/webhooks.tar.gz
# 国内加速下载
wgethttps://hub.fastgit.org/fzf404/GoWebHooks/releases/download/v2.2/webhooks.tar.gz
# 2. 解压
tar -zxvf webhooks.tar.gz
mv example webhooks
# 3. 编辑配置文件
cd webhooks
# hooks 配置文件
vim config/config.yaml # 配置文件中的说明很详细
# 需要执行的 shell 脚本
vim shell/test.sh
#脚本第一行:#!/bin/bash
# 4. 运行
./wehooks
vim shell/test.sh文件内容
#!/bin/bash
cd /web/wuziqi/test #这是我的前端仓库的位置(每个人不同)
git pull
划重点:这个默认位置是在服务器的3000端口跑的
- 配置好以后找到仓库的开发者选项,找到Service Hook新建
- 选择事件:代码推送 仓库:选择代码仓库
- URL:服务器地址:3000/test(test是我自己的服务名字) 签名令牌:
config.yaml配置文件中的密码 (注意:密码不能为纯数字) - 然后测试 (操作页面会弹出ping即成功)
- 最后同步代码
注意,如果同时进行两个仓库同步只需在配置文件中增加服务即可
tmux(终端复用)
原理与windows的窗口相似,可以多窗口同时进行
由于我们关闭了服务器,webhooks不能正常使用,因此有了tmux进行后台运行
#安装tmux
apt install tmux -y
快捷键
ctrl+b: Prefix 键
| 快捷键 | 功能 |
|---|---|
| % | 左右分屏 |
| “ | 上下分屏 |
| o/; | 上下分屏 |
| z | 全屏 Pane |
| x | 全屏 Pane |
| [ | 翻页模式 PgUp/PgDn |
| c | 新建 Window |
| & | 关闭 Window |
| : | 新建 Session |
| s/w | 切换 Session |
| d | 离开 Session |
tmux a | 进入 Session |
后端部署(golang)
- 将后端仓库克隆到服务器文件中
- 然后在终端中打开仓库文件
- 运行
go run main.go #main.go是我自己的文件名
若不想关闭终端就停止文件运行也可以使用
tmux进行持续运行
这里是一段后端代码,自己试试
package main
import (
"fmt"
"log"
"net/http"
)
func pong(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "pong")
}
func main() {
// 为特定路径的访问指定处理函数
http.HandleFunc("/ping", pong)
// 运行前提示
log.Println("Server Runing on http://127.0.0.1:8080")
// 开始服务
err := http.ListenAndServe(":8080", nil)
// 错误处理
if err != nil {
log.Fatal("ListenAndServe: ", err)
}
}