Docker創(chuàng)建正向代理Nginx鏡像

構(gòu)建前準備

Nginx版本:1.20.1
Zlib版本:1.2.11
Openssl版本:1.1.1s
Dockerfile工作目錄:/docker_workspaces - 需要創(chuàng)建
相關模塊工作目錄:/docker_workspaces/workdir - 需要創(chuàng)建

下載相關模塊

# 進入項目模塊工作目錄
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

創(chuàng)建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;"]

創(chuàng)建鏡像

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

運行鏡像

# 創(chuàng)建主機目錄,用于存儲配置文件目錄
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掛載
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容