zoukankan      html  css  js  c++  java
  • 研究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错误,坑了我好久(解决方法参考

  • 相关阅读:
    webpack压缩图片之项目资源优化
    vue v-cloak 指令 处理页面显示源码
    js 获取url 参数
    element-ui Drawer抽屉组件封装
    js中的this指向
    对js闭包的理解
    vue作用域插槽
    flex布局实战
    vue 组件之间传值
    js 面试题一
  • 原文地址:https://www.cnblogs.com/Cong0ks/p/11969697.html
Copyright © 2011-2022 走看看