docker中hyperf项目配置虚拟域名

在学习hyperf框架时遇到一些问题,这里是直接用了docker环境

下载镜像运行容器

shell 复制代码
docker run --name hyperf -v /data/project:/data/project -p 9501:9501 -itd -w /data/project --privileged -u root --entrypoint /bin/sh 镜像ID

配置docker-compose.yml

yml 复制代码
version: "3.9"
services:
  hyper83:
    image: hyperf/hyperf:8.3-alpine-v3.19-swoole-slim
    container_name: hyper83
    working_dir: /data/project
    privileged: true
    user: root
    entrypoint: /bin/sh
    ports:
      - "9501:9501"
    networks:
      - website
    volumes:
      - /data/project:/data/project
      - /usr/bin/git:/var/run/git
      - /usr/bin/git:/usr/bin/git
    restart: always
    tty: true
    stdin_open: true

  nginx12:
    image: nginx:1.23.1-alpine
    container_name: nginx12
    ports:
      - "80:80"
    networks:
      - website
    volumes:
      - /data/project:/usr/share/nginx/html
      - /data/project:/etc/nginx/conf.d
    restart: always

networks:
  website:
    driver: bridge

容器运行后进入容器后composer创建项目

运行项目

shell 复制代码
cd hyperf-skeleton
php bin/hyperf.php start

配置nginx反向代理

复制代码
# 至少需要一个 Hyperf 节点,多个配置多行
upstream hyperf {
    # Hyperf HTTP Server 的 IP 及 端口
    server 172.23.0.1:9501; # 改成docker中的网桥ip
}

server {
    # 监听端口
    listen 80;
    # 绑定的域名, 改成自己的域名
    server_name hyperf.xyz;

    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;
    }
}

重启nginx,修改hosts文件

关键点在于127.0.0.1指向的是docker容器的ip

复制代码
docker inspect nginx

查看docker网关是172.23.0.1,所以在upstream hyperf中配置172.23.0.1

我前面因为nginx.conf中配置的是127.0.0.1报错502

相关推荐
lllsure39 分钟前
【Docker】存储卷
运维·docker·容器
wheeldown44 分钟前
【Linux】 存储分级的秘密
linux·运维·服务器
不做菜鸟的网工1 小时前
Headscale 的部署方法和使用教程
运维
天天进步20151 小时前
掌握React状态管理:Redux Toolkit vs Zustand vs Context API
linux·运维·react.js
有谁看见我的剑了?1 小时前
k8s-容器探针和生命周期回调学习
学习·容器·kubernetes
大翻哥哥1 小时前
Python 2025:低代码开发与自动化运维的新纪元
运维·python·低代码
半梦半醒*2 小时前
正则表达式
linux·运维·开发语言·正则表达式·centos·运维开发
纤瘦的鲸鱼2 小时前
Docker 从入门到实践:容器化技术核心指南
java·docker·容器
海域云SeaArea_2 小时前
CentOS7 安装 Jumpserver 3.10.15
运维
邂逅星河浪漫3 小时前
【Docker+Nginx+Ollama】前后端分离式项目部署(传统打包方式)
java·nginx·docker·部署