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,设置 SameSiteproxy_cookie_path / "/; secure; HttpOnly; SameSite=strict";# 执行代理访问真实服务器proxy_pass http://hyperf;}}
proxy_cookie_path
如果没有部署https 需要将 proxy_cookie_path中的 secure删除,否则会导致session错误,登录验证码错误。
宝塔Nginx
以为Hcms已经指定了配置了静态资源的路径了,所以如果是用docker部署的在使用Nginx反向代理时,要注意静态文件不要被Nginx配置到root目录下。
return ['settings' => [...// 静态资源'document_root' => BASE_PATH . '/public','enable_static_handler' => true,],];
如果你是宝塔的Nginx,需要将下面的配置信息删除,因为静态文件读取也都交给Hyperf处理
root /www/wwwroot/hcms;location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)${expires 30d;error_log /dev/null;access_log /dev/null;}location ~ .*\.(js|css)?${expires 12h;error_log /dev/null;access_log /dev/null;}
