如果您希望通过 http 访问上传到本地的文件,请在 config/autoload/server.php
配置中增加以下配置。
return [ 'settings' => [ ... // 将 public 替换为上传目录 'document_root' => BASE_PATH . '/public', 'enable_static_handler' => true, ], ];
Nginx 反向代理
# 至少需要一个 Hyperf 节点,多个配置多行 upstream hyperf { # Hyperf HTTP Server 的 IP 及 端口 server 127.0.0.1:9501; server 127.0.0.1:9502; } server { # 监听端口 listen 80; # 绑定的域名,填写您的域名 server_name proxy.hyperf.io; location / { # 将客户端的 Host 和 IP 信息一并转发到对应节点 proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 转发Cookie,设置 SameSite proxy_cookie_path / "/; secure; HttpOnly; SameSite=strict"; # 执行代理访问真实服务器 proxy_pass http://hyperf; } }
以上配置完成以后,需要在hyperf根目录下创建public目录,作为公共静态资源目录,hyperf默认没有创建。因为博主这里用的是删库塔,所以直接上图
这里hyperf运行端口是9609,运行根目录是:/www/wwwroot/xxx/backend,为了测试分别创建了static目录和static/1.css文件
在服务器上访问结果如下:
http://127.0.0.1:9609/static/1.css 返回正常,状态码:200
http://服务器公网IP:9609/static/1.css 访问超时,这里一般是防火墙没有放行,因为用的是腾讯云,在腾讯云安全组已经放行9606端口了,后来发现是宝塔上面没有放行,添加或端口放行以后,返回正常,状态码:200
http://反向代理代理域名/static/1.css nginx返回404,尝试修改了很多伪静态姿势无果, 最后在宝塔配置文件中发现了这几行代码
将其注释后,返回正常,问题解决
最后贴一下现在的伪静态设置
方法一,开启hyperf的静态资源方法 location /static { expires 24h; error_log off; proxy_next_upstream http_502 http_504 error timeout invalid_header; proxy_pass http://127.0.0.1:9609/static; proxy_set_header Host 127.0.0.1; proxy_set_header X-Forwarded-For $remote_addr; break; } 方法二,直接用nginx反射 location /static/{ root "/www/wwwroot/***/backend/public/"; break; }
无论从事什么行业,只要做好两件事就够了,一个是你的专业、一个是你的人品,专业决定了你的存在,人品决定了你的人脉,剩下的就是坚持,用善良專業和真诚赢取更多的信任。