Sign inSign up

haveyb/nginx

By haveyb

•Updated about 5 years ago

Nginx 版本为1.21,支持lua和动态负载均衡,安装了lua-nginx-module、ngx_devel_kit、nginx-upsync-module模块。

Image
2

385

haveyb/nginx repository overview

⁠一、概述

该镜像以centos7为基础,安装了Nginx1.21,同时为了实现Nginx动态负载均衡和支持lua,额外安装了lua-nginx-module、ngx_devel_kit、nginx-upsync-module三个模块,并编译完成了LuaJIT。

也就是说如果是为了Nginx配合Lua使用,或者Nginx配合Consul做动态负载均衡,该镜像均可以满足条件。

 

⁠二、使用
⁠1、下载镜像
# 下载镜像
docker pull haveyb/nginx
# 重命名镜像
docker tag docker.io/haveyb/nginx nginx1.21
# 只保留重命名后的镜像
docker rmi docker.io/haveyb/nginx
⁠2、创建数据卷
docker volume create --name=nginx1.21_volume
⁠3、创建容器
docker run -itd --name nginx1.21 -p 81:80 -v nginx1.21_volume:/etc/nginx nginx1.21

注:这里之所以使用数据卷的原因,是因为如果直接映射目录,会出问题

⁠4、进入容器
docker exec -it nginx1.21 bash

 

⁠三、其他说明

1、Nginx安装位置为/etc/nginx

2、nginx.conf 配置文位于 /etc/nginx/conf/nginx.conf

3、创建容器成功后,nginx会自动启动,不用额外再用systemctl start nginx这种命令启动了

4、该容器的目录映射为:宿主机的/var/lib/docker/volumes/nginx1.21_volume/_data/ 映射到容器内的 /etc/nginx/

 

⁠四、数据卷volume相关操作
⁠1、查看某个容器的数据卷映射在宿主机的什么位置
[root@v1 _data]# docker volume inspect nginx1.21_volume 
[
    {
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/nginx1.21_volume/_data",
        "Name": "nginx1.21_volume",
        "Options": {},
        "Scope": "local"
    }
]

⁠2、清除已经没有容器使用的废弃数据卷
docker volume prune

 

⁠五、该镜像所使用的Dockerfile【可不必关注】
FROM centos:7

# 安装相关依赖
RUN yum install -y gcc gcc-c++ glibc autoconf automake make openssl openssl-devel pcre lua-devel unzip zip sudo ncurses

## 下载Nginx
#ADD http://nginx.org/download/nginx-1.21.3.tar.gz /tmp
## 下载LuaJIT
#ADD https://github.com/LuaJIT/LuaJIT/archive/v2.1.tar.gz /usr/local/src
## 下载ngx_devel_kit(NDK)模块
#ADD https://github.com/simpl/ngx_devel_kit/archive/v0.3.0.tar.gz /usr/local/src
## 下载lua-nginx-module 模块
#ADD https://github.com/openresty/lua-nginx-module/archive/v0.10.13.tar.gz /usr/local/src
## 下载nginx-upsync-module 模块
#ADD https://github.com/weibocom/nginx-upsync-module/archive/refs/heads/master.zip /usr/local/src

# 由于网速问题,所有安装包改为由本地上传
COPY ./nginx-1.21.3.tar.gz /tmp/nginx-1.21.3.tar.gz
COPY ./ngx_devel_kit-0.3.0.tar.gz /usr/local/src/ngx_devel_kit-0.3.0.tar.gz
COPY ./LuaJIT-2.1.tar.gz /usr/local/src/LuaJIT-2.1.tar.gz
COPY ./nginx-upsync-module-master.zip /usr/local/src/nginx-upsync-module-master.zip
COPY ./v0.10.13.tar.gz /usr/local/src/v0.10.13.tar.gz


# 解压安装包
RUN cd /tmp \
    && tar -xvf /tmp/nginx-1.21.3.tar.gz \
    && cd /usr/local/src \
    && tar -xvf LuaJIT-2.1.tar.gz \
    && tar -xvf ngx_devel_kit-0.3.0.tar.gz \
    && tar -xvf v0.10.13.tar.gz \
    && unzip nginx-upsync-module-master.zip


# 编译LuaJIT
RUN cd /usr/local/src/LuaJIT-2.1 \
    && make \
    && make install PREFIX=/usr/local/LuaJIT \
    && sudo ln -sf luajit-2.1.0-beta3 /usr/local/bin/luajit


#编译安装Nginx
RUN useradd -M -s /sbin/nologin nginx \
    && cd /tmp/nginx-1.21.3 \
    && ./configure \
    --prefix=/etc/nginx \
    --user=nginx --group=nginx \
    --sbin-path=/usr/sbin/nginx \
    --modules-path=/usr/lib/nginx/modules \
    --conf-path=/etc/nginx/nginx.conf \
    --with-compat \
    --with-file-aio \
    --with-threads \
    --with-http_addition_module \
    --with-http_auth_request_module \
    --with-http_dav_module \
    --with-http_flv_module \
    --with-http_gunzip_module \
    --with-http_gzip_static_module \
    --with-http_mp4_module \
    --with-http_random_index_module \
    --with-http_realip_module \
    --with-http_secure_link_module \
    --with-http_slice_module \
    --with-http_ssl_module \
    --with-http_stub_status_module \
    --with-http_sub_module \
    --with-http_v2_module \
    --with-mail --with-mail_ssl_module \
    --with-stream \
    --with-stream_realip_module \
    --with-stream_ssl_module \
    --with-stream_ssl_preread_module \
    --add-module=/usr/local/src/lua-nginx-module-0.10.13 \
    --add-module=/usr/local/src/ngx_devel_kit-0.3.0 \
    --add-module=/usr/local/src/nginx-upsync-module-master \
    && make \
    && make install \
    && rm -rf /tmp/*


# 开放端口
EXPOSE 80 443

# 自动启动Nginx
ENV PATH /etc/nginx/sbin:$PATH
CMD ["nginx","-g","daemon off;"]

Tag summary

Content type

Image

Digest

Size

188.5 MB

Last updated

about 5 years ago

docker pull haveyb/nginx