MENU

Homestead通过选项配置反向代理

September 16, 2024 • PHP,Nginx

最近在开发一个基于 webman 框架的项目,与传统 php-fpm 项目开发方式有些许不同。传统的 php-fpm 项目,通过 echo 或者 var_dump 函数,文本或者字符串是通过浏览器直接输出的,但 webman 是基于 cli 的命令行输出。

正常来说,如果 webman 项目启动后通过 http://127.0.0.1:8787 就能直接开发了,但如果你想给项目绑定一个测试域名,比如 http://webman.test 那么通过 Homestead.yaml 文件就能直接配置了,不用登录到开发机器上更改 nginx 的配置文件。具体配置如下:

  • sites:
  • - map: webman.test
  • to: 8787
  • type: proxy

增加 type 选项,指定此站点通过反向代理访问。to 选项从原来的项目路径直接更改为后端需要代理的端口号,默认代理地址为 127.0.0.1

配置完成后通过 vagrant up --provision 来重新应用新配置。

然后我们通过 vagrant sssh 登录到客户机上查看下我们的 nginx 配置,路径为 /etc/nginx/sites-available/webman.test

  • server {
  • listen 80;
  • listen 443 ssl;
  • server_name .webman.test;
  • location / {
  • proxy_set_header X-Real-IP $remote_addr;
  • proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  • proxy_set_header Upgrade $http_upgrade;
  • proxy_set_header Connection upgrade;
  • proxy_set_header Host $host;
  • proxy_http_version 1.1;
  • proxy_pass http://127.0.0.1:8787; #此配置为代理的后端服务器
  • }
  • access_log off;
  • error_log /var/log/nginx/webman.test-error.log error;
  • ssl_certificate /etc/ssl/certs/webman.test.crt;
  • ssl_certificate_key /etc/ssl/certs/webman.test.key;
  • }
https://github.com/laravel/homestead/issues/548
Leave a Comment

已有 1 条评论
  1. upstream webman {

    server 127.0.0.1:8787; # Webman 监听的端口,根据实际情况修改

    }

    server {

    listen 80; server_name yourdomain.com; # 替换为你的域名 location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; if (!-f $request_filename) { proxy_pass http://webman; } }

    }