diff --git a/README.md b/README.md index f06a1ca..a0b5c4e 100644 --- a/README.md +++ b/README.md @@ -186,6 +186,30 @@ php webman migrate > 注意:前端通过 Vite 代理将 `/api`、`/admin`、`/install` 转发到后端 8787 端口,请勿直接访问 8787 端口的前端页面,否则可能出现 404。 +### 5.6 生产环境 Nginx(反向代理 Webman) + +部署到服务器时,若使用 **Nginx** 作为站点入口,需将请求转发到本机 **Webman** 进程(默认监听端口与 `config/process.php` 中 `listen` 一致,一般为 `8787`,反代目标使用 `127.0.0.1:8787`)。 + +在站点 **`server { }`** 块中可增加如下写法:**先由 Nginx 根据 `root` 判断是否存在对应静态文件;不存在则转发到 Webman**(`root` 建议指向项目 `public` 目录)。 + +```nginx +location ^~ / { + proxy_set_header Host $http_host; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Real-IP $remote_addr; + proxy_http_version 1.1; + proxy_set_header Connection ""; + if (!-f $request_filename) { + proxy_pass http://127.0.0.1:8787; + } +} +``` + +修改配置后执行 `nginx -t` 校验,再重载 Nginx;并确保 Webman 已启动(如 `php start.php start -d`)。 + +若前端与接口为**不同域名**(跨域),除反代外还需保证 **HTTPS 证书与域名一致**,以及后端 **CORS / 预检(OPTIONS)** 与前端请求头(如 `think-lang`、`server` 等)配置一致,否则浏览器会报跨域相关错误。 + --- ## 六、路由说明 diff --git a/docs/nginx.conf.example b/docs/nginx.conf.example deleted file mode 100644 index 47833c2..0000000 --- a/docs/nginx.conf.example +++ /dev/null @@ -1,40 +0,0 @@ -# BuildAdmin Webman - Nginx 反向代理示例 -# 将 server_name 和 root 改为实际值后,放入 nginx 的 conf.d 或 sites-available - -upstream webman { - server 127.0.0.1:8787; - keepalive 10240; -} - -server { - server_name 你的域名; - listen 80; - access_log off; - root /path/to/dafuweng-webman/public; - - location / { - try_files $uri $uri/ @proxy; - } - - location @proxy { - proxy_set_header Host $http_host; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_set_header X-Real-IP $remote_addr; - proxy_http_version 1.1; - proxy_set_header Connection ""; - proxy_pass http://webman; - } - - location ~ \.php$ { - return 404; - } - - location ~ ^/\.well-known/ { - allow all; - } - - location ~ /\. { - return 404; - } -}