ソースを参照

更新 'gogs-mysql安装.md'

iaminheu 2 時間 前
コミット
36b08c45c3
1 ファイル変更141 行追加2 行削除
  1. 141 2
      gogs-mysql安装.md

+ 141 - 2
gogs-mysql安装.md

@@ -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 排查。
+