简介

当你准备将 Hypervel 应用部署到生产环境时,有一些关键的优化事项可以帮助你确保应用以最高效的方式运行。本文将介绍一些部署 Hypervel 应用的基础知识,帮助你正确地进行上线配置。

服务器要求

Hypervel 有一些系统要求。你需要确保你的 Web 服务器满足以下最低 PHP 版本及扩展要求:

  • PHP >= 8.2
  • Swoole PHP 扩展 >= 5.1
  • JSON PHP 扩展
  • PDO PHP 扩展
  • Pcntl PHP 扩展
  • Session 扩展(如果你需要使用会话功能)
  • OpenSSL PHP 扩展(如果你需要使用 HTTPS)
  • Redis PHP 扩展(如果你需要使用 Redis 客户端)

Docker

如果你打算通过 Docker 部署应用,你可以参考 hyperf/hyperf-docker 项目中的各种 Dockerfile,或者直接使用基于 hyperf/hyperf 的预构建镜像。

服务器配置

用于 HTTP 的 Nginx

如果你部署应用的服务器运行的是 Nginx,可以参考以下配置文件作为起点进行 Web 服务器的设置。根据你的实际服务器配置,可能需要对配置文件做一些定制化调整。

  1. server {
  2. # 监听端口
  3. listen 80;
  4. # 绑定的域名,填写你自己的域名
  5. server_name proxy.hypervel.org;
  6. location / {
  7. # 将客户端的 Host 和 IP 信息转发到后端节点
  8. proxy_set_header Host $http_host;
  9. proxy_set_header X-Real-IP $remote_addr;
  10. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  11. # 转发 cookie,并设置 SameSite 属性
  12. proxy_cookie_path / "/; secure; HttpOnly; SameSite=strict";
  13. # 实际代理到后端服务器
  14. proxy_pass http://127.0.0.1:9501;
  15. }
  16. }

用于 WebSocket 的 Nginx

如果你打算代理 WebSocket 服务,可以参考下面的配置文件:

  1. server {
  2. listen 80;
  3. server_name websocket.hypervel.org;
  4. location / {
  5. # 设置 WebSocket 所需的 Header
  6. proxy_http_version 1.1;
  7. proxy_set_header Upgrade websocket;
  8. proxy_set_header Connection "Upgrade";
  9. # 转发客户端的 Host 和 IP 信息
  10. proxy_set_header X-Real-IP $remote_addr;
  11. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  12. proxy_set_header Host $http_host;
  13. # 客户端与服务器之间 60 秒无交互会自动断开,根据业务需要调整
  14. proxy_read_timeout 60s ;
  15. # 实际代理到 WebSocket 服务
  16. proxy_pass http://127.0.0.1:9502;
  17. }
  18. }