1. 程式人生 > >verynginx在centos下的docker容器製作

verynginx在centos下的docker容器製作

首先感謝alexazhou 開發的這個verynginx的整合工具,給waf又添一新枝。VeryNginx 基於lua_nginx_module(openrestry) 開發,實現了高階的防火牆、訪問統計和其他的一些功能。整合在 Nginx 中執行,擴充套件了 Nginx 本身的功能,並提供了友好的 Web 互動介面。

下面為官方地址:

1.      首先下載必備的安裝軟體:

因為verynginx是基於Lua進行開發的,所以必須要安裝Lua,可以到Lua的官網去下載這個軟體:

然後下載由alexazhou提供的verynginx的整合安裝包:

https://github.com/alexazhou/VeryNginx


下載好的兩個安裝包如下:
因為在alexazhou的python安裝檔案中已經自動執行下載openrestry以及安裝,所以這裡可以不必在進行下載:(當然如果python安裝檔案中的下載連結失效,可以自行下載然後放到VeryNginx-master.zip的目錄中去。Python安裝檔案會自動進行檢測,只要輸入應答Y就可以繼續安裝。)
LuaJIT-2.0.4.tar.gz
VeryNginx-master.zip

2.       當必要的安裝包下載好了以後,就可以開始著手安裝了,因為我是需要把這個verynginx的服務用docker來實現,所以就直接使用Dockerfile 來進行實現。

DOCKERFILE:

#To build the verynginx for web firewall
FROM centos:latest
#to copy local dir to the container
COPY . /software
RUN yum -y install gcc make unzip wget openssl*
RUN mkdir -p /opt/verynginx/openresty
RUN useradd nginx
WORKDIR /software
RUN tar -zxvf LuaJIT-2.0.4.tar.gz \
&& unzip VeryNginx-master.zip
WORKDIR /software/LuaJIT-2.0.4
RUN make && make install
WORKDIR /software/VeryNginx-master
RUN python install.py install
WORKDIR /opt/verynginx/openresty/nginx/conf/
RUN echo "daemon off;" >> nginx.conf
WORKDIR /software
RUN chmod 755 ngxstart.sh
EXPOSE 80
CMD ["/software/ngxstart.sh"]


Dockerfile的說明:

a.  要特別注意因為openresty是預設安裝在/opt/verynginx/openresty目錄下面的,

所以這個目錄必須要有,沒有的話會報錯。所以自行建立。

b.  注意yum –y installgcc make unzip wget openssl*

c.  當dockerfile的檔案做好以後記得跟上面下載的兩個安裝包放在一個目錄下面。

d.  再建立一個用於啟動docker中nginx服務的ngxstart.sh指令碼:

#!/bin/bash
/opt/verynginx/openresty/nginx/sbin/nginx

然後將建立的這個ngxstart.sh的指令碼也放在同一目錄下面。

e. 最終在同一個目錄下面將有這四個檔案:

3.      上面集合了4個檔案,你可以將這四個檔案打包成zip的檔案,然後可以放到基於centos的任何目錄下面,進行verynginx 映象的生成。

docker build –t xxxxxx verynginx:v1

4.      生成映象以後,直接建立容器就可以提供服務了:

docker run –itd –p 9000:80 –restart=always –name=verynginx verynginx:v1/software/ngxstart.sh

5.      接下來可以直接使用本地的瀏覽器進行web控制檯的訪問了:

預設的登入賬號密碼為:verynginx verynginx

登入後的樣子:

到這裡,verynginx的容器服務就製作完成了。

接下來可以進行簡單的配置: