使用docker搭建nginx挂载hexo博客

介绍

原先我的博客是挂载在github pages上面的,但是因为github pages的服务器在国外,国内访问速度就会有点感人,于是就想把我的博客挂载在自己阿里云的服务器上面。

环境

  1. 一台有独立ip的服务器(centos 7)
  2. 在本地搭建好了hexo框架

实现

因为我的博客是hexo写的,众所周知这是一个快速生成静态博客的框架,既然是静态网页,web服务器方面当然是选择nginx了,为什么选择nginx不选择apache呢,因为nginx轻量级,同样起web服务,比apache 占用更少的内存及资源、抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能、高度模块化的设计,编写模块相对简单、社区活跃。等等的优点。
既然选择了nginx,那选择如何搭建了,普通安装或者编译nginx,多多少少会有各种残留,这对一个系统洁癖的人来说,却是非常痛苦的,所以我选择了使用docker安装nginx。

获取nginx镜像

  1. 拉取镜像:

    docker search nginx

pull第一个nginx官方的镜像

docker pull nginx

查看获取到的镜像

➜ docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED   SIZE
nginx               latest              06144b287844        2 weeks ago         109MB

可以看到镜像已经pull下来了

安装docker

➜ curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

然后进入阿里云docker库首页https://dev.aliyun.com/
登入
然后进入管理中心
点击加速器,复制链接

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["粘贴那个链接"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

安装docker-compose

下载shell脚本

➜ sudo curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

修改权限

➜ sudo chmod +x /usr/local/bin/docker-compose

测试

➜ docker-compose --version
docker-compose version 1.22.0, build 1719ceb

通过docker-compose管理生成容器

➜ cd /home/   
➜ mkdir blog && cd blog   //创建一个blog的目录
➜ vi docker-compose.yml   //创建一个名叫docker-compose.yml的文件
#写入
version: '3'
services:
  nginx:
    restart: 'always'
    image: 'nginx'
    ports:
      - '80:80'
      - '443:443'
    volumes:
      - '/home/blog/www/public:/usr/share/nginx/html' #这里的/home/blog/www/public是主机的目录,意思是把这个目录挂载到容器的/usr/share/nginx/html目录中,该目录防止了网页的静态文件
      - '/home/blog/log:/var/log/nginx/' #同理,log文件夹里是nginx的日志文件
      - '/home/blog/conf:/etc/nginx/conf.d'  #同理,配置文件
#:wq保存退出

创建挂载目录
在/home/blog/下创建/www、/log、/conf三个目录

➜ mkdir {www,log,conf}
➜ cd conf
➜ vi default.conf

添加以下内容

server {
listen       80;
server_name  localhost;

#charset koi8-r;
#access_log  /var/log/nginx/log/host.access.log  main;
root   /usr/share/nginx/html;
location / {
    root   /usr/share/nginx/html;
    index  index.html index.htm;
    ## 下面三行是添加的。
    autoindex on;
    autoindex_exact_size on;
    autoindex_localtime on;
}

#error_page  404              /404.html;

# redirect server error pages to the static page /50x.html
#
error_page   500 502 503 504  /50x.html;
location = /50x.html {
    root   /usr/share/nginx/html;
}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
#    proxy_pass   http://127.0.0.1;
#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
#    root           html;
#    fastcgi_pass   127.0.0.1:9000;
#    fastcgi_index  index.php;
#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
#    include        fastcgi_params;
#}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
#    deny  all;
#}
}

上传静态文件

在本地hexo的博客目录下
运行hexo g生成静态文件
他会在该目录下生成一个public的一个文件,里面是关于你博客的所有静态文件,然后这个文件scp到服务器的/home/blog/www/下

➜ scp /home/kevin/blog/public root@119.23.241.xxxx:/home/blog/www
# /home/kevin/blog/public是你本地的public目录地址
# 119.23.24.xxxx表示你远程服务器的地址
# /home/blog/www/public表示上传到远程服务器的位置

然后进入服务器端

➜ cd /home/blog
➜ docker-compose up -d
# -d表示后台运行的意思

然后在浏览器输入你服务器的ip
发现博客已经挂在成功了,
因为我的服务器是阿里云的,所以还有加一步,去阿里的控制台配置防火墙入口规则,添加80端口和443端口。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,133评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,682评论 3 390
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,784评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,508评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,603评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,607评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,604评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,359评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,805评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,121评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,280评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,959评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,588评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,206评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,193评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,144评论 2 352

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,647评论 18 139
  • Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engi...
    ahohoho阅读 15,524评论 15 147
  • Pam 又一个不走寻常路 将食物与艺术相结合的厉害人物 拿饼干当起了画布 不只是画 还有雕刻 吓死个人 — END...
    艺伙阅读 181评论 0 1
  • 久等了,我来了。 我的第一本书《只有时间知道》今日上线预售了。由于我的懒惰慢吞吞地拖了两年之久,也正是因为这样,有...
    飞蔦集民宿阅读 796评论 0 1