home / kengdb / noteTb

noteTb: 249

This data as json

id user_id content tags created_at updated_at enable pinned folder_id comment position visibility
249 1 1 # nginx配置经验 作者:Manus 版本:1.0 --- ## 一、服务器架构概览 ``` 互联网访问者 │ ├─ imocfood.com (Vercel CDN) │ ├─ www.imocfood.com/ → imocfood 主站 │ └─ www.imocfood.com/finance → 301 → https://leedreamer.cn/company │ └─ leedreamer.cn (阿里云 8.219.6.216) │ ├─ HTTP :80 (Server 1) │ ├─ /.well-known/acme-challenge/ → /var/www/html (Let's Encrypt 证书验证) │ └─ / → 301 → https://leedreamer.cn (强制 HTTPS) │ └─ HTTPS :443 (Server 2) ├─ /transnote/ → proxy → 127.0.0.1:8888 (transNote API 接口) ├─ /company → proxy → 127.0.0.1:8902 (公司财务报表) ├─ /transNote/ → alias → /home/project/simpleNote/www/ (transNote 前端) ├─ = /transNote → 301 → /transNote/ (路径规范化) ├─ /assets/ → proxy → 127.0.0.1:3001/assets/ ├─ /api/download-excel→ proxy → 127.0.0.1:3001/api/download-excel ├─ /api/trpc → proxy → 127.0.0.1:3001/api/trpc ├─ /api/oauth → proxy → 127.0.0.1:3001/api/oauth ├─ /english → proxy → 127.0.0.1:3001/ (英语单词学习 App) └─ / → root /var/www/html (私人首页 index.html) ``` --- ## 二、Nginx UI 管理界面 - **访问地址**:http://8.219.6.216:9000 - **账号**:leedreamer / jPPiS(Clzj%j - **配置文件路径**:/etc/nginx/sites-available/default(与 sites-enabled/default 是同一文件) **Upstreams 面板说明**:显示后端服务健康状态,绿点=在线,括号内是响应延迟 | Upstream | 服务 | |---|---| | 127.0.0.1:8888 | transNote API(笔记服务) | | 127.0.0.1:8902 | company 财务报表 | | 127.0.0.1:3001 | 英语单词 App | **Server 1 / Server 2**:分别对应 HTTP 80 和 HTTPS 443 两个 server block --- ## 三、SSL 证书 | 项目 | 值 | |------|-----| | 颁发机构 | Let's Encrypt E8 | | 证书类型 | ECC(椭圆曲线,更小更快) | | 有效期 | 90天,acme.sh 自动续期 | | 覆盖域名 | leedreamer.cn | | 证书路径 | /etc/nginx/ssl/leedreamer.cn/fullchain.cer | | 私钥路径 | /etc/nginx/ssl/leedreamer.cn/privkey.key | **阿里云 AccessKey(acme.sh DNS 验证用)** | 项目 | 值 | |------|-----| | AccessKey ID | LTAI5t71iS2NdrYW5qYKAYBu | | AccessKey Secret | aycE1LYqKWc3AaBPtUDa54vmaBj59g | 手动续期命令: ```bash export Ali_Key="LTAI5t71iS2NdrYW5qYKAYBu" export Ali_Secret="aycE1LYqKWc3AaBPtUDa54vmaBj59g" ~/.acme.sh/acme.sh --renew -d leedreamer.cn --force nginx -s reload ``` --- ## 四、常用维护命令 ```bash # SSH 连接服务器(Manus 沙箱用) ssh -o StrictHostKeyChecking=no -i /home/ubuntu/.ssh/id_rsa_user root@8.219.6.216 # 测试 Nginx 配置语法 nginx -t # 重载 Nginx(不中断服务) nginx -s reload # 查看 Nginx 配置 cat /etc/nginx/sites-available/default # 查看某路径的响应状态 curl -s -o /dev/null -w "%{http_code}" https://leedreamer.cn/某路径/ # 后台启动 Python 服务 nohup python3 api_server.py > server.log 2>&1 & ps aux | grep python3 netstat -tlnp | grep <端口号> ``` --- ## 五、踩坑记录 ### 坑1:301 永久重定向被浏览器缓存 **现象**:改了 nginx 配置后,浏览器还是跳到旧路径 **原因**:301 是永久重定向,浏览器缓存后不再问服务器 **解决**:浏览器按 Ctrl+Shift+R 强制刷新,或清除缓存 ### 坑2:重定向到 IP 地址报证书错误 **现象**:重定向到 http://8.219.6.216 时,浏览器报 NET::ERR_CERT_COMMON_NAME_INVALID **原因**:SSL 证书颁发给域名 leedreamer.cn,不是 IP;浏览器自动把 http 升级成 https **解决**:重定向目标改为 https://leedreamer.cn/路径(有域名证书,不报错) ### 坑3:删除 location 块后出现多余括号 **现象**:用 sed 范围删除 location 块后,nginx -t 报语法错误 **原因**:`sed -i '/pattern1/,/pattern2/d'` 把结束括号 `}` 也删了 **解决**:用 `cat -n` 查行号,再用 `sed -i '行号d'` 精确删除多余的行 ### 坑4:try_files 兜底导致删除路径仍返回 200 **现象**:删除某 location 块后,curl 该路径仍返回 200 **原因**:根路径 `location /` 有 `try_files $uri $uri/ /index.html`,未匹配路径都回退到首页 **结论**:正常行为,不是 bug。路径已无专属 location,只是 try_files 兜底显示了首页 ### 坑5:多个 sites-enabled 配置文件各自含旧路由 **现象**:清理了一个配置文件里的旧路由,但旧路由还在生效 **原因**:/etc/nginx/sites-enabled/ 下可能有多个配置文件,每个都可能包含旧路由 **解决**:`grep -rn '旧路由关键词' /etc/nginx/` 全局搜索,逐一清理 ### 坑6:PowerShell SSH 命令中的分号处理 **现象**:PowerShell 通过 SSH 执行 `"command1; command2"` 报语法错误 **原因**:PowerShell 把分号当作自己的命令分隔符 **解决**:用 `&&` 替代分号,或用 `bash -c 'cmd1; cmd2'` 显式指定解释器 ### 坑7:SSH 密钥文件名问题(Manus 沙箱) **现象**:`ssh -i /home/ubuntu/.ssh/id_rsa` 报 Permission denied **原因**:正确的密钥文件名是 id_rsa_user **解决**:`ls /home/ubuntu/.ssh/` 查看实际文件名 --- ## 六、部署代码到隔离网络服务器 服务器无法访问 GitHub 时,用本地导出 + SCP 上传方案: ```bash # 本地生成压缩包 cd <项目目录> git archive --format zip -o project.zip main # 上传到服务器 scp -i ~/.ssh/id_rsa project.zip root@<服务器IP>:<目标目录>/ # 服务器解压 ssh -i ~/.ssh/id_rsa root@<服务器IP> "cd <目标目录> && unzip -o project.zip -d project" ``` [] 2026-05-12 13:59:55 2026-05-12 13:59:55 T F   source=simplenote; source_id=8df14e54-15c0-4c73-b8c5-6dbd8297f816 29 public

Links from other tables

  • 0 rows from note_id in noteShareTb
  • 0 rows from note_id in shareLinkTb
Powered by Datasette · Queries took 20.935ms