美文网首页
Docker创建正向代理Nginx镜像

Docker创建正向代理Nginx镜像

作者: A二十一画 | 来源:发表于2023-02-14 13:27 被阅读0次

    构建前准备

    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挂载
    

    相关文章

      网友评论

          本文标题:Docker创建正向代理Nginx镜像

          本文链接:https://www.haomeiwen.com/subject/ateekdtx.html