研究2张物理网卡 1台物理服务器 3个光猫 实现的离线下载服务器微架构 (3 光猫)

所需掌握技术:

1. Linux 相关基础

2. Docker容器 相关基础

3. 网络端口映射相关基础

 

拓扑图介绍:

 

 测试环境介绍:

 

Step 1. .::.系统安装阶段需要注意事项::..

1. 需要注意分区和Raid的选择,尤其是下载存放的盘(考虑到频繁读写问题)

2. 系统和下载目录盘一定不要在一个物理硬盘

 

Step 2. .::容器安装阶段需要注意事项::.

0. 物理机(容器服务器): 192.168.3.66   # 容器环境自行搭建(本教程不做过多详解,可参考我整理的相关文案

1. 注意使用yum 和 容器的加速

2. 容器镜像选择 sudo docker search aria2

这里略偷懒,直接就选择别人做好的镜像。详细介绍自行看: https://hub.docker.com/r/oldiy/aria2-ui-ng

 

 

 

 

3.  创建的容器的网络,注意网络选择的选择。

  1)注意网卡给容器主机单独一张物理网卡,EM2物理网卡不要配置IP

   EM网卡2配置参考:

 

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=em2
UUID=2131e480-fed5-4b12-9743-6a86d440c36d
DEVICE=em2
ONBOOT=yes

 

  2)容器创建的主机也不要使用默认的“桥接模式”,而是 --net=none

举例 :

sudo docker run -itd --name Loki_c7t1 --net=none  c7t1:v0.1 

-i, <交互式的方式>  --interactive                    Keep STDIN open even if not attached

-t, <分配一个终端>   --tty                            Allocate a pseudo-TTY

-d,<让容器在后台运行> --detach                         Run container in background and print container ID

--name <容器名>

 

4. 使用pipwork 进行网络配置

  用法:  pipework <网卡/桥> <容器名>  x.x.x.x/24@网关IP

  例如:pipework em2 b1_aria2  172.28.1.10/24@172.28.1.1

 

5. 创建容器主机

docker run -d --name b3_aria2 -e SECRET=xxx -v /etc/localtime:/etc/localtime -v /Downloads/Dokcers/b3/downloads:/data  --net=none <镜像名>

PS:这里镜像注意,可能需要二次封装,因为默认的端口可能和你使用的端口实际不符,修改源镜像的端口后重新封装一次

使用:docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

-a :提交的镜像作者;

-c :使用Dockerfile指令来创建镜像;

-m :提交时的说明文字;

-p :在commit时,将容器暂停。

例如:将容器 d63ab31f9aba,保存为新的镜像

docker commit -a "提交的镜像作者"     -m "提交的文字说明"    容器名   新镜像名:版本

docker commit -a "Loki" -m "aria2_diy_2" d63ab31f9aba loki_aria2:v1

# 我这里主要修改了下源镜像里面的启动端口。

 

 

# 容器目录介绍

::/etc/localtime  解决时间和本地物理机一致

::/data 你的容器下载目录

-e SECRET 你的容器aria2安全码,用于链接Aria2NG和Aria2Ui使用

 

Step 3. .::搭建Nginx环境搭建注意事项::.

1. 创建额外的虚拟主机,提供内网文件回取地址。

2. 这里做了限制ip访问和访问需要密码的操作,展示2个配置文件:

主界面的配置文件:

[loki@localhost ~]$ cat /etc/nginx/vhost/aria2_index.conf 

    server {
        listen 8080;
        server_name down.cdbaidu.com;
        if ($host != 'xxx.test.com'){    # 限制域名以外的方式访问,根据情况更换为你自己域名
        return 404;
        }

        location / {
        root    /xx1/xx2/xx3/xx4/;       # 这里就是你存放web 主页面的目录
        index index.html index.htm;
        error_page 404 /404.html;
             location = /404.html {
         }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }


        # IP access  
        allow 192.168.x.x/24;              # 仅允许内网192.168.x.x/24访问这个界面
        deny all;
    }
}

 

# 虚拟主机单独的文件

[loki@localhost ~]$ cat /etc/nginx/vhost/b1.conf 
    server {
        listen 1181;
        server_name xxx.test.com;

        location / {
         
        root  /Downloads/Dokcers/b1/downloads;
        autoindex on;
        # Chinese code 
        charset utf-8,gbk;  # 这个不加会出现中文乱码
 
        # auth 
        auth_basic "Please input B1 password";
        auth_basic_user_file /etc/nginx/vhost/.htpasswd;  # 这里是需要设置账号密码文件
       }

        # log
        access_log /Downloads/Dokcers/b1/web/access.log;
        error_log /Downloads/Dokcers/b1/web/error.log info;  # 这个info开启用于排除,用完可以关闭

        # IP access  
        allow 192.168.x.x/24;
        deny all;
    }

# htpasswd  需要单独安装
sudo htpasswd -bc <数据文件,随便取>:创建一个加密文件;
sudo htpasswd -b <数据文件> loki <密码> 增加一个用户,如果用户存在就是修改密码
sudo htpasswd -D <数据文件> .htpasswd loki

chmod 400 <数据文件>

设置成功后,能正常启动Nginx,并能看到如下提示,表示成功。

 

PS:这里遇到一个403错误,坑了我好久(解决方法参考

 

 

 

 

 

posted @ 2019-12-02 11:45  Cong0ks  阅读(400)  评论(0编辑  收藏  举报