部署服务器

211 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

部署服务器

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)
	}
}