Docker 搭建 Openresty

96次阅读
没有评论

共计 1771 个字符,预计需要花费 5 分钟才能阅读完成。

OpenResty 是一个基于 NginxLua 的高性能 Web 平台,它通过集成 LuaJIT(一种非常快的 Lua 解释器),可以直接在 Nginx 配置文件里写代码,处理复杂的业务逻辑。

新建

搭建方式如下:

# 拷贝配置文件
mkdir -p openresty && \
docker run -d --name openresty openresty/openresty:1.27.1.2-10-alpine && \
docker cp openresty:/usr/local/openresty/nginx/conf/ ./openresty/nginx && \
docker cp openresty:/etc/nginx/conf.d/ ./openresty/conf.d/ && \
docker cp openresty:/usr/local/openresty/nginx/html/ ./openresty/html/ && \
docker rm -f openresty

docker-compose 运行:

services:
  openresty:
    image: openresty/openresty:1.27.1.2-10-alpine
    container_name: openresty
    network_mode: "host"
    volumes:
      - ./openresty/nginx:/usr/local/openresty/nginx/conf
      - ./openresty/conf.d:/etc/nginx/conf.d
      - ./openresty/html:/usr/local/openresty/nginx/html
      - ./openresty/logs:/usr/local/openresty/nginx/logs
    restart: always

(可选)如果想让日志打印在控制台,即通过 docker logs 查看:

sed -i 's|access_log .*|access_log /dev/stdout;|g' $(find openresty/conf.d -name "*.conf")
sed -i 's|error_log .*|error_log /dev/stderr;|g' $(find openresty/conf.d -name "*.conf")

Nginx 迁移

注意这里的 openresty/conf.d 目录是原来 nginx使用的配置目录。

拷贝文件(如果没有文件,报错不用管)

# 日志文件
cp -r nginx/conf.d/* openresty/conf.d

# 静态文件
cp -r nginx/html/* openresty/html/

如果有用到静态资源目录:

sed -i 's|/usr/share/nginx/html|/usr/local/openresty/nginx/html|g' $(find openresty/conf.d -name "*.conf")

可能遇到的问题(理论上来说都要执行)

  1. nginx: [emerg] unknown log format "main" in /etc/nginx/conf.d/blog.conf:16
sed -i 's/ access_log \(.*\) main;/ access_log \1;/g' $(find openresty/conf.d -name "*.conf")

还原命令:sed -i 's/ access_log (.);/ access_log \1 main;/g' $(find openresty/conf.d -name ".conf")

  1. open() "/var/log/nginx/blog.access.log" failed (2: No such file or directory)
sed -i 's|/var/log/nginx/|/usr/local/openresty/nginx/logs/|g' $(find openresty/conf.d -name "*.conf")
  1. nginx: [emerg] unknown "connection_upgrade" variable

编辑 openresty/nginx/nginx.conf 文件,include 指令前添加:

map $http_upgrade $connection_upgrade {
        default keep-alive;
        'websocket' upgrade;
        '' close;
}
AD:【腾讯云服务器大降价】2核4G 222元/3年 1核2G 38元/年
正文完
 0
阿蛮君
版权声明:本站原创文章,由 阿蛮君 于2026-04-09发表,共计1771字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
Copyright © 2023-2026 阿蛮君博客 湘ICP备2023001393号
本网站由 亿信互联 提供云计算服务 | 又拍云CDN 提供安全防护和加速服务
Powered by Wordpress  Theme by Puock