写了一个微服务,想部署到linux服务器,代码是在win7上编辑的,部署的时候可以直接打包成一个二进制文件:
$env:CGO_ENABLED=0; $env:GOOS="linux"; $env:GOARCH="amd64"; go build -ldflags="-s -w" -o audio-service main.go创建服务文件:
sudo nano /etc/systemd/system/audio-service.service写入内容:
[Unit]
Description=Audio Concatenation Service
After=network.target
[Service]
Type=simple
User=你的用户名
Group=你的用户组
WorkingDirectory=/opt/audio-service
ExecStart=/opt/audio-service/audio-service
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target运行服务:
sudo systemctl daemon-reload
sudo systemctl start wechat-service
sudo systemctl enable wechat-service应用enable指开机自启,设置成功会看到类似下面的信息:
Created symlink /etc/systemd/system/multi-user.target.wants/wechat-service.service → /etc/systemd/system/wechat-service.service.系统服务的管理:
# 重新加载 systemd 配置
sudo systemctl daemon-reload
# 启动服务
sudo systemctl start audio-service
# 设置开机自启
sudo systemctl enable audio-service
# 查看状态
sudo systemctl status audio-service
# 查看日志
sudo journalctl -u audio-service -f
# 停止服务
sudo systemctl stop audio-service
# 重启服务
sudo systemctl restart audio-service
# 取消开机自启
systemctl disable wechat-service
# 获取开机自启列表
systemctl list-unit-files --type=service --state=enabled最后在nginx里配置一下:
server {
listen 80;
server_name 你的域名;
return 301 https://你的域名$request_uri;
}
server {
listen 443 ssl http2;
server_name wx.abddb.com;
# SSL证书配置
ssl_certificate /etc/pki/nginx/你的域名.pem;
ssl_certificate_key /etc/pki/nginx/你的域名.key;
ssl_session_cache shared:WXSSL:10m;
ssl_session_timeout 10m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
# Go后端代理
location /api/ {
proxy_pass http://127.0.0.1:8080;
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_set_header X-Forwarded-Proto $scheme;
# Go服务建议关闭缓冲
proxy_buffering on;
}
# 其他请求返回404
location / {
return 404;
}
}

