Docker创建正向代理Nginx镜像

2023-02-14  本文已影响0人  A二十一画

构建前准备

Nginx版本:1.20.1
Zlib版本:1.2.11
Openssl版本:1.1.1s
Dockerfile工作目录:/docker_workspaces - 需要创建
相关模块工作目录:/docker_workspaces/workdir - 需要创建

下载相关模块

# 进入项目模块工作目录
cd /docker_workspaces/workdir

# 下载Nginx
wget https://nginx.org/download/nginx-1.20.1.tar.gz

# 下载Zlib并解压
wget https://www.zlib.net/fossils/zlib-1.2.11.tar.gz
tar -zxvf zlib-1.2.11.tar.gz

# 下载Openssl并解压
wget https://www.openssl.org/source/openssl-1.1.1s.tar.gz
tar -zxvf openssl-1.1.1s.tar.gz

# 下载ngx_http_proxy_connect_module模块
git clone https://gitee.com/web_design_of_web_frontend/ngx_http_proxy_connect_module.git

创建Dockerfile

# 进入Dockerfile工作目录
cd /docker_workspaces

vim Dockerfile
FROM centos:7

RUN yum install -y patch gcc glibc-devel make pcre-devel gd-devel geoip-devel perl-devel libtool wget

RUN groupadd -g 101 nginx \
          && adduser  -u 101 -d /var/cache/nginx -s /sbin/nologin  -g nginx nginx

COPY ./workdir /workdir

WORKDIR /workdir

RUN tar -zxvf nginx-1.20.1.tar.gz && cd nginx-1.20.1 \
    && patch -p1 < /workdir/ngx_http_proxy_connect_module/patch/proxy_connect_rewrite_1018.patch \
    && ./configure --prefix=/usr/local/nginx --with-pcre --with-zlib=/workdir/zlib-1.2.11 --with-openssl=/workdir/openssl-1.1.1s --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --with-stream --with-mail --with-http_v2_module --add-module=/workdir/ngx_http_proxy_connect_module \
    && make && make install \
    && cd /workdir && rm -rf /workdir/*

CMD ["/usr/local/nginx/sbin/nginx", "-g", "daemon off;"]

创建镜像

cd /docker_workspaces
docker build -t nginx:proxy_1.20.1 .

运行镜像

# 创建主机目录,用于存储配置文件目录
mkdir /usr/local/nginx/conf
# 将配置文件拷贝进配置文件目录,这个可以从别处拷贝

# 启动
docker run -dit -p 80:80 -p 443:443 -v /usr/local/nginx/conf/:/usr/local/nginx/conf/ nginx:proxy_1.20.1

# 默认是开放80/443两个端口,如果需要别的端口,
# 需要先修改配置文件(/usr/local/nginx/conf)里的端口,然后重新启动,并增加-p端口映射
# 如果只是修改配置文件,则使用docker restart [容器ID]进行重启服务
# 本镜像没有增加log日志的映射,如果使用的话需要在配置文件(nginx.conf)中配置后使用-v挂载
上一篇下一篇

猜你喜欢

热点阅读