美文网首页Docker以太坊
使用docker架设yiimp(1)

使用docker架设yiimp(1)

作者: Rakutens | 来源:发表于2019-12-18 10:03 被阅读0次

架设yiimp矿池并不是运行一个程序,而是安装一堆东西,整个过程非常复杂,先看一眼下面的表格,如果你还没放弃,那我们再继续。

必选项:

程序 运行数量 简介
Wallet n 全节点钱包,每币种一个
MySQL 1 数据库
Nginx 1 网站服务器
PHP-FPM 1 PHP运行环境
Memcached 1 缓存服务器
Stratum n 矿池接连器,每币种需要一个实例

可选项:

程序 运行数量 简介
PhpMyAdmin 1 数据库管理
sendmail 1 邮件发送服务
fail2ban 1 服务器入侵检测
Let's Encrypt 1 SSL证书

没错,我知道你当然不会肯放弃,但不急,那只是早晚的事而已,我们先往下看。

服务器配置:

原则上来讲,如果只为跑通,那1核2G内存的服务器就够用了,如果是小币种那硬盘有个几十G也就够,如果你想上主流币(比如ETH),那每个币种至少要准备1TB硬盘来同步区块数据。

开始说正题了,对,认真点(虽然认真也没什么用).....

环境说明

1.为了便于跑通,我们会把所有运行需要的文件都放在/yiimp目录下,但实际生产环境推荐使用NAS保存数据
2.我们会为docker创建一个名为"pool"网桥,所有yiimp相关的通信都会通过此网桥处理
3.有些服务端环境(如Nginx)你可能已经有了,但我仍极力推荐使用新的独立环境

基础环境配置

Docker怎么安装我就不说了,搞不定请现在就放弃吧...

//创建项目基础目录
mkdir /yiimp
mkdir /yiimp/backup
mkdir /yiimp/logs
mkdir /yiimp/nginx
mkdir /yiimp/nginx/vhost
mkdir /yiimp/mysql
mkdir /yiimp/config

sudo touch /yiimp/logs/debug.log
sudo chown -R www-data:www-data /yiimp/logs/debug.log
sudo chmod -R 644 /yiimp/logs/debug.log
sudo chmod -R 664 /root/backup/

//创建网桥
docker network create -d bridge pool

安装PHP-FPM

(Docker提供的PHP官方境像所带功能不足,我们需要自己扩展一下)

Dockerfile-fpm
FROM php:7-fpm-alpine3.10

ADD https://raw.githubusercontent.com/mlocati/docker-php-extension-installer/master/install-php-extensions /usr/local/bin/

RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories \
&& apk update \
&& chmod uga+x /usr/local/bin/install-php-extensions \
&& sync \
&& install-php-extensions imagick memcached mysqli pdo_mysql mcrypt gettext \
&& apk add --no-cache mysql-client shadow \
&& usermod -u 1000 www-data 

CMD ["php-fpm"]
//编译php-fpm(可能会碰到连不上网的问题,多试几次即可)
docker build -t yiimp-fpm -f Dockerfile-fpm .

//运行php-fpm
docker run -d \
--name yiimp-fpm \
--net pool \
--restart unless-stopped \
-e TZ=Asia/Shanghai \
-v /yiimp/web:/var/web \
-v /yiimp/logs:/var/log \
yiimp-fpm

//开放端口可添加 -p 9000:9000

运行Memcached

docker run -d \
--name yiimp-memcached \
--net pool \
--restart unless-stopped \
memcached:alpine

//开放端口可添加 -p 11211:11211

安装Nginx

准备pool.conf参数文件并放至/yiimp/nginx/vhost目录中

pool.conf
server{
        listen       80;
        server_name  pool.domain.com;
        root /var/web;
        index index.html index.htm index.php;
        charset utf-8;
        # allow larger file uploads and longer script runtimes
        client_body_buffer_size  50k;
        client_header_buffer_size 50k;
        client_max_body_size 50k;
        large_client_header_buffers 2 50k;
        sendfile off;

        location / {
        try_files $uri $uri/ /index.php?$args;
        }

        location @rewrite {
        rewrite ^/(.*)$ /index.php?r=$1;
        }
    
        location ~ ^/index\.php$ {
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass  yiimp-fpm:9000;
            fastcgi_index index.php;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_intercept_errors off;
            fastcgi_buffer_size 16k;
            fastcgi_buffers 4 16k;
            fastcgi_connect_timeout 300;
            fastcgi_send_timeout 300;
            fastcgi_read_timeout 300;
            try_files $uri $uri/ =404;
        }

        location ~ \.php$ {
            return 404;
        }
        location ~ \.sh {
        return 404;
        }
        location ~ /\.ht {
        deny all;
        }
        location ~ /.well-known {
        allow all;
        }
}
//启动Nginx
docker run -d \
--name nginx \
--restart unless-stopped \
--net pool \
-e TZ=Asia/Shanghai \
-p 8111:80 \
-p 4431:443 \
-v /yiimp/nginx/nginx.conf:/etc/nginx/nginx.conf:ro \
-v /yiimp/nginx/vhost:/etc/nginx/vhost:ro \
-v /yiimp/logs:/work/yiimp/log \
-v /yiimp/web:/var/web \
-v /yiimp/backup:/root/backup \
nginx:stable-alpine

运行PhpMyAdmin

你可能需要调试数据库,不装也没问题

docker run -d \
--name myadmin \
--restart unless-stopped \
--net pool \
-e TZ=Asia/Shanghai \
-p 8081:80 \
phpmyadmin/phpmyadmin

下载钱包并同步区块链数据

这部分暂时没什么好写的,每个币种不一样,请大家自己搞定,
理论上来讲用docker部署一个全节点钱包完全是不成问题的。

请不要忘记打开钱包的rpc服务并设置用户名和密码,不需要映射RPC端口至公网,因为只是矿池自己调用
(顺便记得给钱包加密码....)

如果以上内容全都顺利运行通过,那恭喜你,我们可以开始配置yiimp了
使用docker架设yiimp(2)

相关文章

网友评论

    本文标题:使用docker架设yiimp(1)

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