IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> CentOS 7.6基于Nginx静态服务器搭建个人网站 -> 正文阅读

[系统运维]CentOS 7.6基于Nginx静态服务器搭建个人网站

1 前言

之前文章 建站过程中的踩坑记录:自定义域名、百度收录与备案 中提到,我将会把个人网站从 GitHub Pages 迁移到腾讯云服务器,本文就针对这个过程做个笔记。

备注:我的个人网站是使用 VuePress 生成的静态网页。

2 安装 Nginx

在安装 Nginx 之前,先看看 yum 的源,执行以下命令:

cat /etc/yum.repos.d/CentOS-Base.repo

输出结果如下:

[extras]
gpgcheck=1
gpgkey=http://mirrors.tencentyun.com/centos/RPM-GPG-KEY-CentOS-7
enabled=1
baseurl=http://mirrors.tencentyun.com/centos/$releasever/extras/$basearch/
name=Qcloud centos extras - $basearch
[os]
gpgcheck=1
gpgkey=http://mirrors.tencentyun.com/centos/RPM-GPG-KEY-CentOS-7
enabled=1
baseurl=http://mirrors.tencentyun.com/centos/$releasever/os/$basearch/
name=Qcloud centos os - $basearch
[updates]
gpgcheck=1
gpgkey=http://mirrors.tencentyun.com/centos/RPM-GPG-KEY-CentOS-7
enabled=1
baseurl=http://mirrors.tencentyun.com/centos/$releasever/updates/$basearch/
name=Qcloud centos updates - $basearch

可以看到由于我买的是腾讯云服务器,所以yum源默认为腾讯源,国内的源比较快,就不用修改了。

备注:如果源不是国内的话,就自己改一下吧,注意改之前先备份,避免出问题。

接下来执行以下命令安装 Nginx:

yum install nginx

3 启动 Nginx

安装好后,我们先启动 Nginx 看看效果,命令如下:

nginx

可以执行以下命令在应用程序中看看 Nginx 有没有启动成功:

top -d 1

接下来我们直接访问一下服务器的公网 ip 看看,比如我这里的是:119.29.8.163,可以看到以下界面,表示 Nginx 服务器启动成功:

在这里插入图片描述

4 配置 Nginx

启动 Nginx 之后会显示默认网站,如果想要它显示指定的静态网站,需要手动配置。

  1. 首先,我们先把静态网站上传到服务器,比如此处我将静态的 HTML 文件放在 /opt/site 目录中。

  2. 进入 Nginx 安装目录:

cd /etc/nginx
  1. 编辑 nginx.conf 文件和 nginx.conf.default 文件,将 http.server.location /root 指向云服务器中的静态网站文件夹,此处为 /opt/site
http {
    server {
        location / {
            root   /opt/site;            # 静态html文件存放目录
            index  index.html index.htm; # 默认首页
        }
    }
}
  1. 配置好后,重启 Nginx
nginx -s reload

重启完成后,刷新 119.29.8.163 页面应该就能看到部署的网站了。

5 配置 HTTPS 服务

5.1 申请 SSL 证书

我用的是腾讯云服务器,所以可以直接在腾讯云中申请的 SSL 证书,打开腾讯云控制台的 SSL 证书页面,申请免费证书:

注意:

  • 免费证书有效期是一年,一年后手动重新申请即可;
  • 申请 SSL 证书的域名需要备案。

在这里插入图片描述

填写好资料后,提交申请即可:

在这里插入图片描述

5.2 下载 SSL 证书

申请通过后,可以在腾讯云控制台的 SSL 证书页面 找到对应的证书并下载(注意:下载 Nginx 类型的证书):

在这里插入图片描述

下载完成后,得到 liuyuxin.site_nginx.zip 压缩包,解压后目录结构如下:

在这里插入图片描述

5.3 使用 SSL 证书

首先,我们现在腾讯云控制台的 DNS 解析 DNSPod 页面,将域名解析到云服务器 IP,这样通过域名就可以访问个人网站了。

接着开始配置 SSL 证书,需要上传到 Nginx 服务器的文件如下:

文件说明
liuyuxin.site_bundle.crt证书文件
liuyuxin.site.key私钥文件

将这两个文件放到云服务器的 Nginx 安装目录(/etc/nginx)中的 ssl 文件夹中,这个路径可自定义,后续可以在配置文件中指定。

编辑 /etc/nginx/nginx.conf 文件,开启 HTTPS 默认端口 443:

http {
    server {
        # SSL 默认访问端口号为 443
        listen 443 ssl; 
        # 配置绑定证书的域名
        server_name liuyuxin.site; 
        # 配置证书文件的相对路径或绝对路径
        ssl_certificate "/etc/nginx/ssl/liuyuxin.site_bundle.crt";
        # 配置私钥文件的相对路径或绝对路径
        ssl_certificate_key "/etc/nginx/ssl/liuyuxin.site.key"; 
        ssl_session_timeout 5m;
        # 配置协议
        ssl_protocols TLSv1.2 TLSv1.3; 
        # 配置加密套件,写法遵循 openssl 标准
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
        ssl_prefer_server_ciphers on;
        location / {
            # 网站主页路径
            root   /opt/site;
            index  index.html index.htm;
        }
    }
}

配置好后,执行以下命令验证配置文件问题,返回 ok 则表示配置文件可正常运行:

nginx -t

重启 Nginx 服务:

nginx -s reload

此时,我们可以通过 HTTPS 协议访问网页了:https://liuyuxin.site/

5.4 HTTP 自动跳转 HTTPS

为保证数据安全,我这里将 HTTP 请求自动重定向到了 HTTPS,编辑 /etc/nginx/nginx.conf 文件,新增重定向配置:

http {
    server {
        # SSL 默认访问端口号为 443
        listen 443 ssl; 
        # 配置绑定证书的域名
        server_name liuyuxin.site; 
        # 配置证书文件的相对路径或绝对路径
        ssl_certificate "/etc/nginx/ssl/liuyuxin.site_bundle.crt";
        # 配置私钥文件的相对路径或绝对路径
        ssl_certificate_key "/etc/nginx/ssl/liuyuxin.site.key"; 
        ssl_session_timeout 5m;
        # 配置协议
        ssl_protocols TLSv1.2 TLSv1.3; 
        # 配置加密套件,写法遵循 openssl 标准
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
        ssl_prefer_server_ciphers on;
        location / {
            # 网站主页路径
            root   /opt/site;
            index  index.html index.htm;
        }
    }
    server {
        listen 80;
        # 配置绑定证书的域名
        server_name liuyuxin.site; 
        # 把 http 的域名请求转成 https
        return 301 https://$host$request_uri; 
    }
}

配置好后,执行以下命令验证配置文件,并重启 Nginx 服务:

nginx -t
nginx -s reload

6 自动部署

由于手动更新云服务器上的静态网站文件比较麻烦,因此这里我写了一个 shell 脚本自动部署网站,其原理很简单,就是通过 ssh 把 Vuepress 编译生成的静态网页上传到云服务器的指定目录,代码如下:

# 确保脚本抛出遇到的错误
set -e

# 生成静态网站
npm run docs:build
echo "==================== build html done ===================="

# 清除服务器上的静态网站
ssh root@119.29.8.163 "rm -rf /opt/site"
echo "==================== clear html done ===================="

# 将静态网站部署到服务器
scp -r ./site root@119.29.8.163:/opt
echo "==================== deploy html done ===================="

注意:该脚本会先清除服务器上原来的网站,再部署新的网站,因此需要输入两次密码。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-09-24 21:30:38  更:2022-09-24 21:30:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 9:30:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码