使用 Docker Compose 搭建 OpenResty 是一个很好的选择,能够轻松管理和配置多个服务。以下是一个示例,展示了如何使用 Docker Compose 来搭建一个简单的 OpenResty 环境。

示例项目结构

首先,创建一个项目文件夹,结构如下:

openresty-example/
├── docker-compose.yml
└── nginx.conf
Markdown

1. 创建 nginx.conf

在 openresty-example 文件夹中,创建一个名为 nginx.conf 的文件,内容如下:

worker_processes auto;
error_log stderr;
pid /tmp/nginx.pid;

events {
    worker_connections 1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout 65;

    server {
        listen 80;
        server_name localhost;

        location / {
            default_type text/plain;
            content_by_lua_block {
                ngx.say("Hello from OpenResty!")
            }
        }

        # 你可以在这里添加更多 location 块来处理不同的请求
    }
}
vim

2. 创建 docker-compose.yml

在 openresty-example 文件夹中,创建一个名为 docker-compose.yml 的文件,内容如下:

version: '3.8'

services:
  openresty:
    image: openresty/openresty:alpine
    container_name: openresty
    volumes:
      - ./nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf:ro
    ports:
      - "80:80"
    restart: always
vim

3. 启动 OpenResty

在 openresty-example 文件夹中,打开终端并运行以下命令:

docker-compose up -d
vim

这个命令会下载 OpenResty 的 Docker 镜像,并根据 docker-compose.yml 文件中的配置启动 OpenResty 服务。

4. 测试

在浏览器中访问 http://localhost,你应该能看到以下输出:

Hello from OpenResty!
vim

5. 停止服务

要停止 OpenResty 服务,可以在项目目录中运行:

docker-compose down
vim

6. 扩展

你可以根据需要修改 nginx.conf 文件来添加更多功能,例如:

  • 反向代理到 Node.js 应用。
  • 处理静态文件。
  • 添加 Lua 脚本支持等。

总结

通过 Docker Compose 搭建 OpenResty 环境是非常简单和高效的,以上示例提供了一个基本的配置,可以根据具体需求进行扩展和修改。


我用nodejs的网页,相关配置

worker_processes auto;

events {
    worker_connections 1024;  # 可以根据需要调整这个值
}

http {
    server {
        listen 80;  # 监听端口
        server_name mnas.yys.zone;  # 你的域名

        location / {
            proxy_pass http://192.168.31.63:3000;  # 使用 Node.js 容器的名称或 IP
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;
        }
    }
}
vim