# nginx-project **Repository Path**: work_project_item/nginx-project ## Basic Information - **Project Name**: nginx-project - **Description**: nginx代理 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-10 - **Last Updated**: 2026-03-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Nginx OpenClaw HTTPS 反向代理 在宿主机上使用 Nginx 为 OpenClaw 提供 HTTPS 反向代理。OpenClaw 后端地址:`http://127.0.0.1:18789`。 ## 项目结构 ``` nginx-project/ ├── conf/ │ ├── nginx.conf # 主配置(含 include) │ ├── openclaw-https.conf # 正式证书版(需替换证书路径) │ └── openclaw-https-selfsigned.conf # 自签名证书版(本地测试) ├── scripts/ │ ├── gen-selfsigned-cert.sh # Linux/Mac 生成自签名证书 │ └── gen-selfsigned-cert.ps1 # Windows 生成自签名证书 ├── ssl/ # 证书存放目录 └── logs/ # 日志目录 ``` ## 快速开始(自签名证书,本地测试) ### 1. 生成自签名证书 **Windows (PowerShell):** ```powershell cd E:\ProjectCode\WBRGithub\nginx-project .\scripts\gen-selfsigned-cert.ps1 ``` **Linux/Mac:** ```bash chmod +x scripts/gen-selfsigned-cert.sh ./scripts/gen-selfsigned-cert.sh ``` 证书将生成到 `ssl/` 目录。 ### 2. 配置 OpenClaw 允许代理访问 OpenClaw 需在 `http://127.0.0.1:18789` 正常运行。在 `openclaw.json` 中增加: ```json { "gateway": { "bind": "loopback", "port": 18789, "controlUi": { "allowedOrigins": ["https://192.168.3.239:17001", "http://192.168.3.239:17001", "https://localhost:17001", "http://localhost:17001"] } } } ``` 将 `192.168.3.239` 换成你的 Mac 实际 IP。若有多 IP 或需内网全放行,可改用: ```json "controlUi": { "dangerouslyAllowHostHeaderOriginFallback": true } ``` 然后重启 OpenClaw。 **否则通过代理访问会返回 400。** ### 3. 启动 Nginx 以本项目为工作目录启动 Nginx: ```bash # Windows (在项目根目录执行) nginx -p E:\ProjectCode\WBRGithub\nginx-project -c conf\nginx.conf # Linux/Mac nginx -p /path/to/nginx-project -c conf/nginx.conf ``` ### 4. 访问 - 地址:`https://localhost:17001` 或 `https://127.0.0.1:17001`(局域网访问:`https://<本机IP>:17001`) - 自签名证书会触发浏览器安全警告,选择「高级」→「继续访问」即可 ## 正式环境(Let's Encrypt 等证书) 1. 将证书文件放到 `ssl/` 或自定义目录 2. 编辑 `conf/openclaw-https.conf`: - 修改 `ssl_certificate` 和 `ssl_certificate_key` 路径 - 将 `server_name _` 改为你的域名 3. 修改 `conf/nginx.conf`,将 include 改为: ```nginx include openclaw-https.conf; ``` ## 配置说明 | 配置项 | 说明 | |--------|------| | `proxy_pass` | 后端地址 `http://127.0.0.1:18789` | | `Upgrade` / `Connection` | WebSocket 支持,用于 OpenClaw 流式推理 | | `proxy_read_timeout` | 86400s,适配长连接/流式请求 | | `client_max_body_size` | 100M,适配大模型请求体 | ## 常用命令 ```bash # 测试配置 nginx -t -p <项目路径> -c conf/nginx.conf # 重新加载配置 nginx -s reload -p <项目路径> -c conf/nginx.conf # 停止 nginx -s stop ``` ## 方式二:并入现有 Nginx 若宿主机已有 Nginx,在 `http` 块中加入: ```nginx include E:/ProjectCode/WBRGithub/nginx-project/conf/openclaw-https-selfsigned.conf; ``` 注意:自签名证书路径 `ssl/openclaw-selfsigned.crt` 相对于 Nginx 工作目录,需将证书放到 Nginx 根目录下的 `ssl/` 中,或修改配置中的证书路径为绝对路径。 ## 注意事项 - 宿主机需已安装 Nginx(含 SSL 模块) - 默认使用 **17001** 端口,确保未被占用 - 自签名证书仅适合本地/内网,公网请使用正规证书