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