Nginx 静态文件访问并支持 SSL

Nginx 静态文件访问并支持 SSL

xiaolu
2022-02-24 / 0 评论 / 14 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2022年02月24日,已超过125天没有更新,若内容或图片失效,请留言反馈。

当你拥有一台闲置的云服务器,可以尝试使用 nginx 搭一个静态文件访问服务,nginx 自带的那个服务界面是不太美观的,本文使用 nginx + fancyIndex 来做一个美观的静态文件访问服务。

下载 nginx 和 fancyIndex

Nginx 下载,当前最新 1.20.2
FancyIndex 下载,当前最新 v0.5.2

# 解压 nginx
tar -zxvf *.gz

# 解压 fancyindex,需要两次
xz -d *.xz
tar -zxvf *.tar

安装配置

如果服务器已经安装了 nginx,可以先 备份 一下,然后重新编译安装,不然就被直接覆盖了!

找到 nginx 解压后的根目录,执行以下命令:

# 以 centos 为例,先安装几个依赖模块
yum install gcc -c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel

#安装前的配置 把对应的目录更换一下
./configure --prefix=/opt/nginx  --add-module=../ngx-fancyindex-ngx-fancyindex --with-http_stub_status_module --with-http_ssl_module

make && make install  #编译并安装

ln -s /opt/nginx/sbin/nginx /usr/bin/nginx    #创建软链接

后面的两个 --with xxxx 指的是 SSL 模块,nginx 默认不加这个,因为要用到 HTTPS,所以这里选择加上。

编辑 nginx.conf

然后粘贴如下内容到 nginx.conf 中 (位置要正确),其中需要修改的是:

server_name 域名
ssl_certificate 证书位置 (下面示例中 cert 是目录,和 conf 目录同级)
ssl_certificate_key 证书秘钥位置
location 需要修改 root 为你服务器上某个目录 (wiki.wannax.cn 是个目录)

注:location、fancyindex.conf 在后面会提到,先这样配置

server {
    listen 443 ssl;
    listen 80;
    server_name wiki.wannax.cn;
    charset  utf-8;
    ssl_certificate ../cert/wiki.wannax.cn.crt;
    ssl_certificate_key ../cert/wiki.wannax.cn.key;

    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout 5m;

    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;
    if ($scheme = http) {
        return 301 https://$server_name$request_uri;
    }
    location / {
      include fancyindex.conf;
      root /www/wiki.wannax.cn;
    }
  }

如果你不想使用 SSL,或者没有证书的话,配置很简单:

server {
    listen 80;
    server_name wiki.wannax.cn;
    charset  utf-8;
    
    location / {
      include fancyindex.conf;
      root /www/wiki.wannax.cn;
    }
  }

下载主题

下载链接:https://github.com/Naereen/Nginx-Fancyindex-Theme/archive/master.zip

解压命令:unzip *.zip

此压缩包包含两个主题,一个明亮、一个暗黑,自己选择。

把其中一个主题的目录移动到你的静态文件目录那块,和上面的 location root 保持一致即可

移动命令:mv xxxx /www/wiki.wannax.cn/fancydark (mv 后面的 xxxx 和 / 之间有空格)

把主题根目录下的 fancyindex.conf 移动到 nginx 的 conf 目录下

编辑 fancyindex.conf

fancyindex on;
fancyindex_localtime on;
fancyindex_exact_size off;
fancyindex_header "/fancydark/header.html";
fancyindex_footer "/fancydark/footer.html";
fancyindex_ignore "fancydark";
fancyindex_ignore "README.md";
fancyindex_ignore "HEADER.md";
fancyindex_name_length 255;

其中,fancyindex_ignore 指的是对外不显示哪些文件目录,此处配置的是主题目录不对外显示,但是仍可以通过浏览器手动访问此目录

fancyindex_header 与 fancyindex_footer 是两个 html 文件,默认位于此主题中,如果你有一点 html 和 css 和 js 的基础,可以自己改写一下。

最后一点工作

下面的命令可以管理 nginx

nginx -t              #检测 nginx.conf 是否语法正确
nginx             #启动 nginx
nginx -s reload      #重载 nginx
nginx -s stop     #停止运行 nginx

开启 nginx 的服务后,在浏览器地址栏输入你的域名,就可以看到努力的成果了。

0

评论 (0)

取消