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; } }

    }