前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nginx配置静态文件服务从入门到精通

Nginx配置静态文件服务从入门到精通

原创
作者头像
happlyfox
修改2021-03-16 09:59:43
4.6K0
修改2021-03-16 09:59:43
举报
文章被收录于专栏:技术开源分享

作者:三十三重天 博客:http://www.zhouhuibo.club

通过学习和分享的过程,将自己工作中的问题和技术总结输出,希望菜鸟和老鸟都能通过自己的文章收获新的知识,并付诸实施。

引言

使用Nginx布署静态文件服务,Nginx服务得先有才能进行后续的事情。如果有同学不会部署的,可以参考我的上一篇文章yum安装Nginx全流程指南

。已经部署好的同学可以直接看下面的内容了。

Nginx 场景介绍

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

  • 正向代理
  • 反向代理
  • 负载均衡
  • 动静分离

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

开始配置

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

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

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

mkdir -p /home/files

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

如果你是用yum安装nginx的,那在etc/nginx/nginx.conf目录下会有一个文件default.conf

default.conf是默认配置文件,暴露80端口,默认页面为index.hmtl

cat default.conf可以看到如图所示内容,添加红框中的配置到文件中

代码语言:javascript
复制
​
    location /download {
        alias   /home/files/;
        autoindex on;
    }

这一段的意思是增加127.0.0.1:80/download的解析,路径指向/home/files文件夹。autoindex on;代表开启目录浏览

三、检验配置并重启Nginx

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

代码语言:javascript
复制
nginx -t

2、重启nginx

代码语言:javascript
复制
nginx -s reload

其他配置项

代码语言:javascript
复制
server {
        listen       80;
​
     location /download {
         #转到的Nginx文件目录
         alias /home/files;
         #打开目录浏览功能
         autoindex on;
         #默认为on,显示出文件的确切大小,单位是bytes
         #显示出文件的大概大小,单位是kB或者MB或者GB
         autoindex_exact_size off;
         #默认为off,显示的文件时间为GMT时间。
         #改为on后,显示的文件时间为文件的服务器时间
         autoindex_localtime on;
         #让浏览器不保存临时文件
         add_header Cache-Control no-store;
         #避免中文乱码
         charset utf-8,gbk;
         #希望请求文件是下载而不是显示内容
         #add_header Content-Disposition attachment; 
        }
}
​

部署过程中出现的问题

404

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

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

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

403

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

1、目录权限不足

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

代码语言:javascript
复制
chmod -R 755 /home/files
2、nginx.conf用户权限问题
代码语言:javascript
复制
vim /etc/nginx/nginx.conf

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

3 、Centos中的selinux配置未关闭

查看SELinux状态:

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

代码语言:javascript
复制
/usr/sbin/sestatus -v 

如何关闭?

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

setenforce 0

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

代码语言:javascript
复制
vim /etc/selinux/config

将SELINUX=enforcing改为SELINUX=disabled

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • Nginx 场景介绍
  • 开始配置
    • 一、linux系统定义一个访问目录
      • 二、Nginx 添加一个Location将刚才的目录暴露出去
        • 三、检验配置并重启Nginx
          • 其他配置项
          • 部署过程中出现的问题
            • 404
              • 403
                • 1、目录权限不足
                • 2、nginx.conf用户权限问题
                • 3 、Centos中的selinux配置未关闭
            相关产品与服务
            负载均衡
            负载均衡(Cloud Load Balancer,CLB)提供安全快捷的四七层流量分发服务,访问流量经由 CLB 可以自动分配到多台后端服务器上,扩展系统的服务能力并消除单点故障。轻松应对大流量访问场景。 网关负载均衡(Gateway Load Balancer,GWLB)是运行在网络层的负载均衡。通过 GWLB 可以帮助客户部署、扩展和管理第三方虚拟设备,操作简单,安全性强。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档