最近在开发一个基于 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
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; } }}