使用docker搭建nginx掛載hexo部落格
介紹
原先我的部落格是掛載在github pages上面的,但是因為github pages的伺服器在國外,國內訪問速度就會有點感人,於是就想把我的部落格掛載在自己阿里雲的伺服器上面。
環境
- 一臺有獨立ip的伺服器(centos 7)
- 在本地搭建好了hexo框架
實現
因為我的部落格是hexo寫的,眾所周知這是一個快速生成靜態部落格的框架,既然是靜態網頁,web伺服器方面當然是選擇nginx了,為什麼選擇nginx不選擇apache呢,因為nginx輕量級,同樣起web服務,比apache 佔用更少的記憶體及資源、抗併發,nginx 處理請求是非同步非阻塞的,而apache 則是阻塞型的,在高併發下nginx 能保持低資源低消耗高效能、高度模組化的設計,編寫模組相對簡單、社群活躍。等等的優點。
既然選擇了nginx,那選擇如何搭建了,普通安裝或者編譯nginx,多多少少會有各種殘留,這對一個系統潔癖的人來說,卻是非常痛苦的,所以我選擇了使用docker安裝nginx。
獲取nginx映象
-
拉取映象:
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埠。
相關文章
- 利用docker快速搭建hexo部落格DockerHexo
- 使用 Hexo 搭建靜態部落格Hexo
- 使用 hexo 搭建個人部落格Hexo
- Hexo 搭建部落格Hexo
- 搭建Hexo部落格相簿Hexo
- Hexo部落格搭建記錄Hexo
- hexo 部落格搭建筆記Hexo筆記
- 使用Docker搭建Chirpy部落格Docker
- 使用hexo+Anisina+github搭建個人部落格HexoGithub
- 整合github、hexo搭建部落格GithubHexo
- hexo搭建個人部落格心得Hexo
- 使用Hexo框架10分鐘搭建個人部落格Hexo框架
- 如何使用Github+Hexo快速搭建個人部落格GithubHexo
- 使用Nginx+Hexo光速搭建部落格並實現伺服器自動部署NginxHexo伺服器
- Hexo+Github部落格搭建完全教程HexoGithub
- 基於Hexo搭建靜態部落格Hexo
- Git+Hexo搭建靜態部落格GitHexo
- Hexo+Gitee搭建個人部落格HexoGitee
- Hexo + Github 搭建靜態部落格(一)HexoGithub
- hexo+github搭建個人部落格HexoGithub
- Hexo-Node-Git搭建部落格HexoGit
- 使用Hexo搭建個人部落格的終極資料Hexo
- 使用Hexo&GitHub免費快速搭建部落格教程HexoGithub
- 同為部落格,不同風格 ——Hexo另類搭建Hexo
- 搭建部落格 (Hexo + github + butterfly主題)HexoGithub
- hexo 搭建部落格常用命令Hexo
- vps攜手hexo的部落格搭建之旅Hexo
- Hexo+Github搭建部落格總結HexoGithub
- Hexo+GitHub+阿里域名搭建自己部落格HexoGithub阿里
- hexo結合github搭建個人部落格HexoGithub
- 【GitHub】GitHub+Hexo搭建個人部落格GithubHexo
- Hexo+Netlify快速搭建個人部落格Hexo
- Hexo+NexT(零):最全Hexo+Next搭建部落格教程Hexo
- Hexo部落格搭建+主題優化+外掛配置+常用操作+錯誤分析Hexo優化
- centos6.9安裝nginx,啟動hexo部落格CentOSNginxHexo
- 史上最快用GitHub、Hexo搭建個人部落格GithubHexo
- Hexo+Github輕鬆搭建個人部落格HexoGithub
- 用自己的伺服器搭建HEXO部落格伺服器Hexo