概率抽奖算法
/// <summary> /// 抽奖 /// </summary> /// <param name="probabilities">每个奖项的概率&
Docker作为最主流的虚拟化技术,但还不会使用Docker搭建Ghost?
网站的服务器在阿里云上海,选择CentOS系统,以下内容将以此为基础。
全新的系统,使用命令将常用的库进行更新:
sudo yum update -y
使用 Docker 官方脚本自动完成 Docker 安装:
sudo curl -sSL https://get.docker.com | sudo sh
sudo systemctl enable docker // 设置 Docker 开机启动
sudo systemctl start docker // 启动 Docker
docker version // 查看 Docker 版本号
docker ps // 查看当前运行中的容器,可测试 Docker 是否正常启动
现在Docker已经安装好了,接下来的内容将继续以命令行的方式进行,使用 Docker 安装 MySQL/MariaDB
服务。
MariaDB
镜像,容器的名称为 “mariadb
”,;mariadb
配置文件放置在本机/data/mysql/conf.d
目录中;mariadb
数据文件放置在本机/data/mysql/data
目录中;那么得到以下命令:
docker run --name maraidb \
-v /data/mysql/conf.d:/etc/mysql/conf.d \
-v /data/mysql/data:/var/lib/mysql \
--restart always \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=设置ROOT账号默认密码 \
-d mariadb:latest
执行完成之后,为了安全,应该立即使用数据库管理工具修改账户名和密码。同时,为Ghost创建一个库。
接下来安装 Ghost
。
你得提前在/data/ghost
目录创建Ghost
的配置文件config.production.json
。具体的内容可在Ghost文档
中查看。
你需要设置的内容如下:
{
url: 'http://my-ghost-blog.com', // 网站域名
database: {
client: 'mysql',
connection: {
host : '127.0.0.1', // 你的服务器IP
user : 'username', // 数据库用户名
password : '', // 数据库密码
database : 'ghost', // 数据库名
charset : 'utf8'
}
}
然后开始安装 Ghost
:
docker run --name ghost \
-v /data/ghost/config.production.json:/var/lib/ghost/config.production.json \
-v /data/ghost/content:/var/lib/ghost/content \
--restart always \
-p 2368:2368
-d ghost:alpine
执行完成后,现在你可以通过 http://域名:2368
访问博客了,并通过访问 http://域名:2368/ghost
初始化 Ghost
账户。
接下来安装 Nginx
作为代理服务器。你可使用 “Docker
” 或者 yum
来安装“Nginx
”。以使用 yum
为例:
sudo yum install nginx -y
sudo systemctl enable nginx
sudo systemctl start nginx
然后编辑 Nginx
的配置文件:
nano /etc/nginx/conf.d/你的域名.conf
// 内容如下:
server {
listen 80;
server_name 你的域名;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://localhost:2368;
}
}
// 让Nginx重新加载配置文件
sudo nginx -s reload
此时,你可直接通过域名访问 “Ghost
” 了。
以上是最基础的安装方式,其实,你可通过 docker-compose
或者 docker stack
使用“编排文件”进行更加快速和高效的安装;
同时,你可不必向外网暴露 3306
和 2368
端口,仅让服务器开放 80
和 443
端口;
使nginx
和 ghost
处在同一 Docker
网络环境,那么 nginx
可通过 ghost
的容器名称访问系统了。