|
|
@@ -2,7 +2,7 @@
|
|
|
|
|
|
# 纯 MySQL 8.0 版 Gogs 完整安装教程
|
|
|
|
|
|
-**全程使用官方 MySQL 8.0,步骤纯净可直接复制执行。
|
|
|
+全程使用官方 MySQL 8.0,步骤纯净可直接复制执行。
|
|
|
|
|
|
## 一、服务器环境准备
|
|
|
|
|
|
@@ -43,7 +43,7 @@ sudo mysql_secure_installation
|
|
|
|
|
|
- 移除匿名用户:Y
|
|
|
|
|
|
-- 禁止 root 远程登录:Y
|
|
|
+- 禁止 root 远程登录:Y // 这里应该设置为 N 因为要用navicat远程可视化
|
|
|
|
|
|
- 移除测试数据库:Y
|
|
|
|
|
|
@@ -248,3 +248,142 @@ CHARSET = utf8mb4
|
|
|
### 总结
|
|
|
|
|
|
本教程纯官方 MySQL 8.0 + Gogs 标准部署,步骤极简、无冗余内容,直接复制即可完成安装。
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+### 以上操作完成以后,还有nginx和阿里云等配置
|
|
|
+
|
|
|
+Nginx 反向代理绑定域名及访问(Gogs 适配版)
|
|
|
+
|
|
|
+本教程为 Gogs 安装完成后,通过 Nginx 反向代理实现域名直接访问(无需携带 3000 端口)的完整步骤,适配 MySQL 8.0 + Gogs 环境,全程可复制执行,支持后续 HTTPS 配置。
|
|
|
+
|
|
|
+## 一、安装 Nginx
|
|
|
+
|
|
|
+// 更新系统依赖(确保安装最新版本 Nginx)
|
|
|
+sudo apt update
|
|
|
+// 安装 Nginx
|
|
|
+sudo apt install -y nginx
|
|
|
+// 启动 Nginx 并设置开机自启
|
|
|
+sudo systemctl enable --now nginx
|
|
|
+// 验证 Nginx 运行状态(显示 active (running) 即为成功)
|
|
|
+sudo systemctl status nginx
|
|
|
+
|
|
|
+## 二、域名解析(前提操作)
|
|
|
+
|
|
|
+登录你的域名服务商(如阿里云、腾讯云),进入域名解析控制台,添加 A 记录,将域名指向你的服务器公网 IP:
|
|
|
+
|
|
|
+- 记录类型:A(将域名指向 IPv4 地址)
|
|
|
+
|
|
|
+- 主机记录:@(主域名,如 gogs.example.com 则填 gogs)
|
|
|
+
|
|
|
+- 记录值:服务器公网 IP(如 47.101.xxx.xxx)
|
|
|
+
|
|
|
+- TTL:默认 10 分钟(解析生效时间,耐心等待即可)
|
|
|
+
|
|
|
+验证解析是否生效:在本地终端执行 ping 你的域名,返回服务器 IP 即解析成功。
|
|
|
+
|
|
|
+## 三、配置 Nginx 反向代理(核心步骤)
|
|
|
+
|
|
|
+创建 Gogs 专用的 Nginx 配置文件,避免与默认配置冲突:
|
|
|
+
|
|
|
+// 进入 Nginx 配置目录,创建配置文件(替换 your-domain.com 为你的实际域名)
|
|
|
+sudo nano /etc/nginx/sites-available/your-domain.com.conf
|
|
|
+
|
|
|
+粘贴以下配置(替换所有 your-domain.com 为你的域名,无需修改其他内容):
|
|
|
+
|
|
|
+server {
|
|
|
+ // 监听 80 端口(HTTP 默认端口,无需携带端口访问)
|
|
|
+ listen 80;
|
|
|
+ // 绑定你的域名(多个域名用空格分隔,如 your-domain.com www.your-domain.com)
|
|
|
+ server_name your-domain.com;
|
|
|
+ // 允许大文件上传(适配 Gogs 代码仓库推送,可根据需求调整)
|
|
|
+ client_max_body_size 5G;
|
|
|
+
|
|
|
+ // 核心反向代理配置,将域名请求转发到 Gogs 的 3000 端口
|
|
|
+ location / {
|
|
|
+ proxy_pass http://localhost:3000;
|
|
|
+ // 传递客户端真实 IP 和域名信息,避免 Gogs 识别异常
|
|
|
+ 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;
|
|
|
+ // 支持 WebSocket(适配 Gogs 实时通知功能)
|
|
|
+ proxy_http_version 1.1;
|
|
|
+ proxy_set_header Upgrade $http_upgrade;
|
|
|
+ proxy_set_header Connection 'upgrade';
|
|
|
+ proxy_cache_bypass $http_upgrade;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+保存并退出:按 Ctrl+O → 回车确认 → Ctrl+X。
|
|
|
+
|
|
|
+## 四、启用 Nginx 配置并重启服务
|
|
|
+
|
|
|
+// 创建软链接,让 Nginx 加载该配置文件(替换 your-domain.com 为你的域名)
|
|
|
+sudo ln -s /etc/nginx/sites-available/your-domain.com.conf /etc/nginx/sites-enabled/
|
|
|
+// 禁用 Nginx 默认配置,避免端口冲突
|
|
|
+sudo rm -f /etc/nginx/sites-enabled/default
|
|
|
+// 检查配置文件语法(关键步骤,避免配置错误导致 Nginx 无法启动)
|
|
|
+sudo nginx -t
|
|
|
+// 语法无错误后,重启 Nginx 使配置生效
|
|
|
+sudo systemctl restart nginx
|
|
|
+
|
|
|
+提示 nginx: configuration file /etc/nginx/nginx.conf test is successful 即为配置语法正确。
|
|
|
+
|
|
|
+## 五、放行 80 端口(防火墙配置)
|
|
|
+
|
|
|
+// 放行 80 端口(HTTP 访问,域名访问必备)
|
|
|
+sudo ufw allow 80/tcp
|
|
|
+// 重新加载防火墙规则
|
|
|
+sudo ufw reload
|
|
|
+
|
|
|
+## 六、调整 Gogs 配置(确保域名访问正常)
|
|
|
+
|
|
|
+修改 Gogs 配置文件,同步域名信息,避免跳转异常:
|
|
|
+
|
|
|
+// 编辑 Gogs 核心配置文件
|
|
|
+sudo nano /home/gogs/gogs/custom/conf/app.ini
|
|
|
+
|
|
|
+找到 [server] 段落,修改以下参数(替换 your-domain.com 为你的域名):
|
|
|
+
|
|
|
+[server]
|
|
|
+HTTP_PORT = 3000
|
|
|
+SSH_PORT = 22
|
|
|
+DOMAIN = your-domain.com # 改为你的域名
|
|
|
+ROOT_URL = http://your-domain.com/ # 域名访问地址,末尾加 / 这里默认是localhost:3000 记得修改
|
|
|
+ // 要不然代码的http地址就无法访问
|
|
|
+PROTOCOL = http
|
|
|
+
|
|
|
+保存退出后,重启 Gogs 服务使配置生效:
|
|
|
+
|
|
|
+sudo systemctl restart gogs
|
|
|
+
|
|
|
+## 七、验证域名访问
|
|
|
+
|
|
|
+打开浏览器,直接访问 http://你的域名(无需加 :3000 端口),能正常进入 Gogs 登录页,即为反向代理配置成功。
|
|
|
+
|
|
|
+## 八、可选:配置 HTTPS(免费 SSL 证书)
|
|
|
+### 这里的证书 需要去阿里云官网申请https://yundun.console.aliyun.com/?spm=5176.100251.111252.41.6d784f15w8yDiA&p=cas#/instance/test/cn-hangzhou
|
|
|
+SSL证书 然后填入 比如 git.leadmuta.com 再去nginx配置好该证书即可通过域名访问
|
|
|
+
|
|
|
+为提升安全性,可通过 Let's Encrypt 申请免费 SSL 证书,实现 HTTPS 访问,步骤如下:
|
|
|
+
|
|
|
+// 安装 Certbot 工具(用于申请免费 SSL 证书)
|
|
|
+sudo apt install -y certbot python3-certbot-nginx
|
|
|
+// 申请并自动配置 SSL 证书(替换 your-domain.com 为你的域名)
|
|
|
+sudo certbot --nginx -d your-domain.com
|
|
|
+
|
|
|
+按提示操作:输入邮箱 → 同意协议 → 选择是否接收通知(随意选择),等待证书申请完成,Certbot 会自动修改 Nginx 配置,开启 HTTPS 并将 HTTP 自动跳转至 HTTPS。
|
|
|
+
|
|
|
+验证 HTTPS:访问 https://你的域名,浏览器地址栏显示小锁图标即为成功。
|
|
|
+
|
|
|
+反向代理常见问题
|
|
|
+
|
|
|
+- 域名访问 404:检查 Nginx 配置文件中的域名是否正确,软链接是否创建成功,执行 sudo nginx -t 排查语法错误。
|
|
|
+
|
|
|
+- 访问跳转异常:确认 Gogs 配置文件中 ROOT_URL 末尾是否加 /,未加会导致静态资源加载失败。
|
|
|
+
|
|
|
+- Nginx 启动失败:大概率是配置文件语法错误,检查分号、大括号是否闭合,重新执行 sudo nginx -t 排查。
|
|
|
+
|