一、安装Docker
1.查看内核版本
uname -a
Docker官方说至少3.8以上,建议3.10以上
2.把yum包更新到最新
温馨提示:新环境或测试环境可随意操作,生产环境酌情慎重更新
yum update
期间需要确认,输入"y"即可
3.安装需要到依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
4.设置yum源
下面两个选择一个即可
# *仓库
yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo
# 阿里仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
5.查看仓库中所有到Docker版本
yum list docker-ce --showduplicates | sort -r
6.安装Docker
我选择到是docker-ce-18.03.1.ce
yum install docker-ce-18.03.1.ce
期间需要确认,输入"y"即可
7.启动Docker并加入开机启动
# 启动Docker
systemctl start docker
# 加入开机自启动
systemctl enable docker
8.查看Docker版本
docker version
二、使用Docker安装Halo博客
1.创建工作目录
mkdir ~/.halo && cd ~/.halo
2.下载示例配置文件到工作目录
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
如果没有安装wget,可使用命令
yum -y install wget
进行安装
3.编辑配置文件,配置数据库或者端口等,如需配置请参考参考配置(一般默认即可)
vim application.yaml
4.拉取最新的 Halo 镜像
docker pull halohub/halo
5.创建容器
docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=always halohub/halo
-it: 开启输入功能并连接伪终端
-d: 后台运行容器
–name: 为容器指定一个名称
-p: 端口映射,格式为 主机(宿主)端口:容器端口 ,可在 application.yaml 配置。
-v: 工作目录映射。形式为:-v 宿主机路径:/root/.halo,后者不能修改。
–restart: 建议设置为 always,在 Docker 启动的时候自动启动 Halo 容器。
6.打开 http://ip:端口号
访问后即可进入指导页面(需开放服务器端口,一般默认是8090)
参考文档
三、安装nginx
1.下载安装包(一般安装在/usr/local下)
cd /usr/local
wget http://nginx.org/download/nginx-1.11.5.tar.gz
2.下载nginx依赖库
可能会安装失败,具体可参考后面到错误提示信息
yum install gcc-c++
yum install pcre
yum install pcre-devel
yum install zlib
yum install zlib-devel
yum install openssl
yum install openssl-devel
3.解压安装包
nginx被解压到了/usr/local/nginx-1.11.5 目录下(不要把压缩包解压到/usr/local/nginx目录下,或者将解压后的目录重命名为nginx,因为nginx会默认安装到/usr/local/nginx目录下)
tar -zxvf nginx-1.11.5.tar.gz
4.安装
# 切换至nginx-1.11.5/目录
cd /usr/local/nginx-1.11.5/
执行
./configure --with-http_ssl_module
# --with-http_ssl_module需加上,否则后面配置SSL证书时会报错 the "ssl" parameter requires ngx_http_ssl_module
该命令会检测当前系统环境,以确保能成功安装nginx,执行该操作后可能会出现以下几种提示:
checking for OS
+ Linux 3.10.0-123.el7.x86_64 x86_64
checking for C compiler ... not found
./configure: error: C compiler cc is not found
如果出现以上错误提示信息,执行yum install gcc-c++安装gcc
./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre=<path> option.
如果出现上面提示,表示缺少PCRE库
./configure: error: the HTTP gzip module requires the zlib library.
You can either disable the module by using --without-http_gzip_module
option, or install the zlib library into the system, or build the zlib library
statically from the source with nginx by using --with-zlib=<path> option.
如果出现以上提示,表示缺少zlib库
如果没有出现./configure: error提示,表示当前环境可以安装nginx,执行make和make install编译nginx
make && make install
如果没有报错的话,表示nginx已经成功安装完成,默认安装位置为/usr/local/nginx
5.配置nginx开机启动
cd /lib/systemd/system/
vim nginx.service
文件内容如下
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart= /usr/local/nginx/sbin/nginx
ExecReload= /usr/local/nginx/sbin/nginx reload
ExecStop= /usr/local/nginx/sbin/nginx quit
PrivateTmp= true
[Install]
WantedBy=multi-user.target
退出并保存文件,执行命令开机启动
systemctl enable nginx.service
6.验证nginx是否安装成功
输入http://服务器IP/ 如果能看到nginx的界面,就表示安装成功了
7.常用nginx命令
systemctl start nginx.service # 启动nginx
systemctl stop nginx.service # 结束nginx
systemctl restart nginx.service # 重启nginx
nginx -v # 查看nginx版本
四、nginx安装SSL证书并进行配置
在此之前需先购买域名并进行备案
1.进入阿里云服务器中购买证书购买SSL证书地址
选择***DV单域名(免费试用)进行购买,购买后选择nginx证书下载,下载后解压会得到下面两个文件
2.配置nginx
执行下面命令在在Nginx安装目录(默认为/usr/local/nginx/conf)下创建一个用于存放证书的目录(命名为cert)
cd /usr/local/nginx/conf #进入Nginx默认安装目录。如果您修改过默认安装目录,请根据实际配置进行调整。
mkdir cert #创建证书目录,命名为cert。
使用putty、xshell等工具等文件传输工具将你的证书传到cert目录下(/usr/local/nginx/conf/cert)
编辑neinx.conf
vim /usr/local/nginx/conf/nginx.conf
配置文件中定位到HTTP协议代码片段(http{}),并在HTTP协议代码里面添加以下server配置(如果server配置已存在,按照以下注释内容修改相应配置即可)。
server {
listen 443 ssl;
server_name yourdomain.com www.yourdomain.com;
#需要将yourdomain.com替换成证书绑定的域名。
client_max_body_size 1024m;
ssl_certificate cert/cert-file-name.pem;
# 需要将cert-file-name.pem替换成已上传的证书文件的名称
ssl_certificate_key cert/cert-file-name.key;
# 需要将cert-file-name.key替换成已上传的证书密钥文件的名称
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
# 反向代理地址,注意 /
proxy_pass http://127.0.0.1:8090/;
proxy_redirect off;
# 代理请求头
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
设置HTTP请求自动跳转HTTPS(可选),配置如下
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
return 301 https://$server_name$request_uri;
}
3.重启Nginx服务
cd /usr/local/nginx/sbin #进入Nginx服务的可执行目录
./nginx -s reload #重新载入配置文件
4.验证SSL证书是否安装成功
证书安装完成后,可通过访问证书的绑定域名验证该证书是否安装成功
https://yourdomain.com #需要将yourdomain.com替换成证书绑定的域名
注意事项,需将端口80和443添加至服务器安全组,且需检查系统防火墙firewall是否添加了443端口,是否在监听,命令可参考文档