前言
因为很多新手小白拿到服务器却不会部署自己的项目,这篇文章带你了解部署前端域名申请证书全过程
准备工作
- 新建前端文件夹我这里可以作为参考
vim front/pyq/index.html - 申请一个域名,解析在指定服务器。
1. 添加 Nginx 官方仓库
CentOS 7 默认的 yum 源中不包含最新版本的 Nginx,所以需要先添加 Nginx 官方仓库。
运行以下命令来创建 Nginx 仓库文件:
sudo vi /etc/yum.repos.d/nginx.repo
在文件中添加以下内容:
[nginx]
name=nginx repo
baseurl=https://nginx.org/packages/centos/7/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
保存并退出编辑器。
2. 安装 Nginx
在添加 Nginx 官方仓库后,执行以下命令来安装 Nginx:
sudo yum install nginx
3. 启动 Nginx 服务
安装完成后,启动 Nginx 服务:
sudo systemctl start nginx
设置 Nginx 开机自启动:
sudo systemctl enable nginx
4. 检查 Nginx 服务状态
你可以使用以下命令检查 Nginx 服务的状态,确保其运行正常:
sudo systemctl status nginx
5. 配置防火墙
如果你使用的是 firewalld 防火墙,需要确保 HTTP (端口 80) 和 HTTPS (端口 443) 是开放的
注意如果是国内的服务器需要登录阿里云或者腾讯云开放端口 :
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
6. 验证安装
完成后,你可以通过访问服务器的 IP 地址来确认 Nginx 是否工作。例如,在浏览器中访问:
nginx -t
你应该可以看到 Nginx 启动正常的提示。
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
7. Nginx 配置文件及站点配置
Nginx 的默认配置文件位于 /etc/nginx/nginx.conf,但是为了更好地管理不同的站点或应用程序,通常会将每个站点的配置放在 /etc/nginx/conf.d/ 目录中。这里提供一个示例,介绍如何配置 Nginx 来部署一个站点。
7.1 创建站点配置文件
假设你要部署一个前端项目,并且项目的静态文件位于 /usr/share/nginx/html/my-site 目录。可以创建一个新的 Nginx 配置文件来定义这个站点,这里建议一个站点建立一个.conf文件。
sudo vi /etc/nginx/conf.d/pyq.conf
在文件中添加如下配置:
server {
listen 80;
server_name info.dqh.baby; #这是解析后的域名,如果不知道怎么申请域名可以看我另一篇文章。
root /front/pyq; #这里是需要展示的资源目录
index index.html index.htm;
location / {
try_files $uri $uri/ /index.html;
}
}
listen 80;:配置服务器监听 HTTP 端口 80。server_name info.dqh.baby;:将info.dqh.baby替换为你的域名或服务器 IP 地址。root:指定网站的根目录,Nginx 会从这里提供文件服务,就是指向你想展示的静态资源。index:指定默认的首页文件。location /:为请求定义路由规则,try_files $uri $uri/ /index.html;表示如果请求的文件或路径不存在,Nginx 会返回index.html。
保存并退出编辑器。
7.2 测试 Nginx 配置
在 Nginx 配置文件编辑完成后,运行以下命令来测试配置是否正确:
sudo nginx -t
如果输出结果是 syntax is ok 和 test is successful,表示配置文件没有问题。
7.3 重新加载 Nginx
测试通过后,重新加载 Nginx 使新配置生效:
sudo systemctl reload nginx
8. 部署 HTTPS(可选)
为了让网站支持 HTTPS,你可以使用 Let’s Encrypt 提供的免费 SSL 证书。我们可以使用 Certbot 来自动获取和配置证书。
8.1 安装 Certbot
首先需要安装 EPEL(Extra Packages for Enterprise Linux)源:
sudo yum install epel-release
然后安装 Certbot 和 Nginx 插件:
sudo yum install certbot python2-certbot-nginx
8.2 申请 SSL 证书
执行以下命令为你的域名申请 SSL 证书:
sudo certbot --nginx -d info.dqh.baby
your_domain 替换为你实际的域名。Certbot 会自动生成 SSL 证书并配置 Nginx 来使用它。
8.3 自动续订证书
Let’s Encrypt 证书的有效期是 90 天,可以设置自动续订:
sudo certbot renew --dry-run
这将测试自动更新的流程,确保在证书即将过期时会自动续订。
9. 设置开机自启动
如果你希望 Nginx 和其他相关服务在服务器重启时自动启动,可以使用 systemctl enable 命令:
sudo systemctl enable nginx
这将确保 Nginx 在系统重启后自动启动。
10. 监控 Nginx 日志
Nginx 的日志可以帮助你排查问题或了解站点的访问情况。默认情况下,日志存放在 /var/log/nginx/ 目录下。
-
访问日志:记录所有成功访问的请求。
/var/log/nginx/access.log -
错误日志:记录任何导致错误的请求或配置问题。
/var/log/nginx/error.log
可以通过 tail -f 命令实时查看日志,例如:
sudo tail -f /var/log/nginx/access.log
sudo tail -f /var/log/nginx/error.log
总结:
这篇指南介绍了如何在 CentOS 7 上通过官方 Nginx 仓库安装 Nginx,并为前端项目部署 HTTPS 站点。以下是主要步骤:
- 添加 Nginx 官方仓库
创建 Nginx 仓库配置文件并添加官方仓库地址,以确保安装最新版本的 Nginx。 - 安装 Nginx
使用yum命令安装 Nginx。 - 启动 Nginx 服务
通过systemctl命令启动 Nginx 并设置开机自启动。 - 配置防火墙
开放 HTTP(80)和 HTTPS(443)端口,确保外部能够访问你的站点。 - 验证 Nginx 安装
通过nginx -t命令测试 Nginx 配置文件的正确性。 - 站点配置
在/etc/nginx/conf.d/目录下创建自定义站点配置文件,指定站点根目录及路由规则,并配置静态文件的访问。 - 测试并重载 Nginx
测试配置文件无误后,使用systemctl reload nginx重新加载 Nginx 以应用新配置。 - 部署 HTTPS
使用 Let’s Encrypt 提供的免费 SSL 证书,通过 Certbot 工具为域名自动申请并配置 SSL 证书。 - 自动续订证书
配置自动续订,确保 Let’s Encrypt 证书在到期前自动更新。 - 设置开机自启动
使 Nginx 在服务器重启后自动启动,确保服务持续运行。 - 监控 Nginx 日志
通过查看 Nginx 的访问日志和错误日志,监控网站运行状态并排查潜在问题。
这个总结涵盖了从安装 Nginx 到使用 HTTPS 保护站点的全过程,同时包含了防火墙配置、自动续订和日志监控等细节,适合需要在 CentOS 7 上进行 Web 服务器配置的用户参考。