Next.js 学习笔记(五)- Nginx 部署静态资源并 CDN 加速

583 阅读3分钟

Nginx 场景介绍

Nginx的配置繁多且复杂,但是实际的使用场景其实无非就是这么几个

针对不同的应用场景有不同的配置文件,在未来我会针对不同的场景依次说明并给出对应的配置文件。在此留个坑,哈哈。

开始配置

回到当前主题,我们是要配置一个静态文件服务供客户端访问。

一、linux系统定义一个访问目录

在home目录新建一个files文件夹,里面存放文件供客户端访问

mkdir -p /home/files

二、Nginx 添加一个Location将刚才的目录暴露出去

如果你是用yum安装nginx的,在 etc/nginx/nginx.conf 配置

vim nginx.conf

在同级 server 里面以下内容,注意,这里默认是 443,需要证书,你看前面的去配置好

server {
                                   listen  443 ssl;

                                   ssl_certificate cdn.你的域名_bundle.crt;

                                   ssl_certificate_key cdn.你的域名.key;

                                   server_name cdn.你的域名;

                                   location / {

                                   root  /home/files/;
                                    #打开目录浏览功能
                                    autoindex on;
                                    #默认为on,显示出文件的确切大小,单位是bytes
                                    #显示出文件的大概大小,单位是kB或者MB或者GB
                                    autoindex_exact_size on;
                                    #避免中文乱码
                                    charset utf-8,gbk;
                                    #默认为off,显示的文件时间为GMT时间。
                                    #改为on后,显示的文件时间为文件的服务器时间
                                    autoindex_localtime on;



}

三、检验配置并重启Nginx

1、检验配置文件是否正确

nginx -t

2、重启nginx

nginx -s reload

部署过程中出现的问题

404

如果出现404错误,大概率可能是配置文件出错。

有可能是location后多加一个左斜杠/

也有可以是指向的目录地址不存在

403

403 Forbidden 代表被禁止的,一般是三种情况导致的

1、目录权限不足

检查目录权限。权限不足就将权限加上

chmod -R 755 /home/files

复制

2、nginx.conf用户权限问题

vim /etc/nginx/nginx.conf

复制

把 user 用户名 改为 user root 或 其它有高权限的用户名称即可

3 、Centos中的selinux配置未关闭

查看SELinux状态:

如果SELinux status参数为enabled即为开启状态

/usr/sbin/sestatus -v 

复制

如何关闭?

1、临时关闭(不用重启机器):

setenforce 0

2、永久关闭(要重启机器)

vim /etc/selinux/config

复制

将SELINUX=enforcing改为SELINUX=disabled

配置腾讯云 CDN

1.解析一个新域名

新增记录 cdn.你的域名 cname 先随便写

新增一个 ssl 证书

cdn.你的域名 申请证书

3. 新增 CDN

添加 cdn.你的域名 填入你的服务器 ip 地址,生成 CNAME ,将 CNAME 域名加入到 解析新域名那里去了,成功

4. CDN 管理

开启 https 服务 选择 https ssl 证书 设置全部缓存

5. 添加证书

下载证书,下载 nginx 版本到本地,通过腾讯云控制台直接登陆上传

在刚才的配置文件里面这里,修改成你自己的证书

image.png

检查 nginx -t

重新加载

nginx -s reload

成功,可直接生成链接了