Nginx静态文件服务器配置方法

在Java开发以及生产环境中,最常用的web应用服务器当属Tomcat,尽管这只猫也能够处理一些静态请求,例如图片、html、样式文件等,但是效率并不是那么尽人意。在生产环境中,我们一般使用Nginx代理服务器来处理静态文件,来提升网站性能。

基本配置

server {
    listen 80;
    server_name file.52itstyle.com;
    charset utf-8;
 #root 指令用来指定文件在服务器上的基路径
    root /data/statics;
 #location指令用来映射请求到本地文件系统
    location / {
      autoindex on; # 索引
      autoindex_exact_size on; # 显示文件大小
      autoindex_localtime on; # 显示文件时间
    }
  }

重启Nginx服务:

nginx -s reload

访问文件服务,http://file.52itstyle.com/

设置密码

htpasswd命令是Apache的Web服务器内置工具,用于创建和更新储存用户名、域和用户基本认证的密码文件。

htpasswd(选项)(参数)

  1. -c:创建一个加密文件;
  2. -n:不更新加密文件,只将加密后的用户名密码显示在屏幕上;
  3. -m:默认采用MD5算法对密码进行加密;
  4. -d:采用CRYPT算法对密码进行加密;
  5. -p:不对密码进行进行加密,即明文密码;
  6. -s:采用SHA算法对密码进行加密;
  7. -b:在命令行中一并输入用户名和密码而不是根据提示输入密码;
  8. -D:删除指定的用户。

实例

htpasswd -bc passwd.db itstyle 123456

在目录下生成一个passwd.db文件,用户名itstyle,密码:123456,默认采用MD5加密方式。

在原有密码文件中增加下一个用户

htpasswd -b passwd.db admin 123456

Nginx配置

server {
    listen 80;
    server_name file.52itstyle.com;
    charset utf-8;
    root /data/share;
    location / {
      autoindex on; # 索引
      autoindex_exact_size on; # 显示文件大小
      autoindex_localtime on; # 显示文件时间
      auth_basic "请输入用户名密码";
      auth_basic_user_file /usr/local/openresty/nginx/passwd.db;
    }
  }

重启Nginx访问:

图片防盗链

如果服务器的图片被别的网站盗链,将影响服务器的带宽以及访问速度,这时我们就需要设置图片文件或视频文件的防盗链功能。

防盗链功能,简单来说就是你可以直接访问该资源,但是不能将我的资源链接放到你自己的服务器上让别人访问,尤其是图片或视频这种比较大的文件,容易导致服务器响应很慢。

server {
    listen 80;
    server_name file.52itstyle.com;
    charset utf-8;
 #root 指令用来指定文件在服务器上的基路径
    root /data/statics;
 #location指令用来映射请求到本地文件系统
    location ~*^.+\.(gif|jpg|png|jpeg)$ {
       expires   30d;
       valid_referers none blocked file.52itstyle.com;
       if ($invalid_referer) {
         rewrite ^/ http://www.52itstyle.com/404.jpg;
       }
    }
  }

重启Nginx服务,测试一下图片链接:http://file.52itstyle.com/NFS_C.png

原文地址:https://www.cnblogs.com/aaron911/p/11006334.html

时间: 2024-10-29 20:21:46

Nginx静态文件服务器配置方法的相关文章

几种快速以伺服静态文件的方法

我们经常碰到需要把某个文件夹迅速当成一个静态文件服务器的场景(比如下载了一个前端框架.插件,包括了静态演示网站等),如何用最快的速度把它变成一个服务器呢? 此文讨论的是不编程的情况下,如果考虑编程,任何语言都能写一个服务器啊 Apache, Nginx, IIS等大杀器 传统服务器自不在话下,只是你得去配置处把这个文件夹添加进去,我们的目标是迅速打开命令行/终端,一个命令搞定,这肯定不是最好的方法 node houston https://github.com/alejandro/Houston

Nginx的访问日志、Nginx的日志切割、Nginx静态文件不记录日志和过期时间

Nginx的访问日志 Nginx的日志切割 Nginx静态文件不记录日志和过期时间 原文地址:http://blog.51cto.com/13515599/2086909

Django中,图片显示问题--Django中静态文件处理方法指南

html网页中要显示一张JPG图片,可是怎么放都是显示不了. 后来搞明白,这个涉及静态文件的处理方法. 在urls.py中添加一行: urlpatterns = patterns('', (r'^site_media/(?P<path>.*)','django.views.static.serve',{'document_root':'E:/media'}), }然后在html页面中,写入 <p><img src="/site_media/gmshi.jpg&quo

记一次vue2项目部署nginx静态文件404解决过程

github上下的一个vue2的项目,运行可以的,webpack打包后,nginx请求报错: 发现路径很奇怪啊,所以果断来到build.js文件中看看是不是哪里不对. 已经一番引用查找: 发现在这里配置了个属性值.assetsPublicPath这个名字看着就是静态文件的公共位置嘛,所以直接请求了这个地址下的css/js文件. 于是我到这个路径下找找看看,是不是有css/js文件: 发现打包文件很规范根本没有这些个东西.所以自然而然,我要把assetsPublicPath这个属性的值改为根目录试

nginx静态文件不设置缓存

找到nginx安装目录下的nginx.conf文件,再nginx里面添加如下的内容 location / { add_header Cache-Control no-cache; add_header Pragma no-cache; add_header Expires 0; } 原文地址:https://www.cnblogs.com/mr-wuxiansheng/p/11348149.html

Maven项目WEB-INF/views无法引入js,css静态文件解决方法

web.xml针对文件后缀配置以下,对客户端请求的静态资源如图片.JS文件等的请求交由默认的servlet进行处理 <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.css</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default<

nginx静态文件缓存

open_file_cache max=65535 inactive=30s; open_file_cache 打开缓存的同时也指定了缓存最大数目,以及缓存的时间 open_file_cache_valid 60s; 在open_file_cache中指定检测正确信息的间隔时间 open_file_cache_min_uses 1; 在 inactive指定时间中没有使用到这个配置的次数的话就删除 最大缓存65535个文件,每个文件缓存30秒,每60秒检测一次,如果有更改或者如果没有用到1次,就

nginx静态文件访问

新建staticServer.conf(先配置二级解析域名) #static server { listen 80; server_name static.maoriaty.top; expires 300d; gzip on; location / { root /app/deploy/static; index index.html index.htm; } rewrite ^/upload/(.*)$ /upload/$1 last; rewrite ^/(.*)/(\d+)/(.*)$

Django中关于导入静态文件的方法

1.首先需要设置static文件的位置,在setting文件中设置 2.在html中通过{% load staticfiles %}加载,并调用,如下 原文地址:https://www.cnblogs.com/wangyi891224/p/9047479.html