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

基本配置

server {
listen ;
server_name file.52itstyle.com;
charset utf-;
#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 

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

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

htpasswd -b passwd.db admin 

Nginx配置

server {
listen ;
server_name file.52itstyle.com;
charset utf-;
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 ;
server_name file.52itstyle.com;
charset utf-;
#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

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

  1. Nginx 静态文件服务

    Nginx 静态文件服务 我们先来看看最简单的本地静态文件服务配置示例: server { listen 80; server_name www.test.com; charset utf-8; ro ...

  2. nginx静态文件缓存的解决方案

    nginx的一大功能就是完成静态资源的分离部署,减轻后端服务器的压力,如果给这些静态资源再加一级nginx的缓存,可以进一步提升访问效率. 第一步:添加nginx.conf的http级别的缓存配置 # ...

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

    github上下的一个vue2的项目,运行可以的,webpack打包后,nginx请求报错: 发现路径很奇怪啊,所以果断来到build.js文件中看看是不是哪里不对. 已经一番引用查找: 发现在这里配 ...

  4. nginx静态文件访问404

    在http模块下加入下面的代码 server { listen 80; server_name 192.168.1.249; #本机ip #access_log logs/host.access.lo ...

  5. [Day2] Nginx静态文件

    ​上一节我们介绍了nginx的三个使用场景和一些配置语法参数,今天我们就用一章的内容来介绍一下Nginx作为静态资源服务器的配置和常见问题. 一. 简单的静态服务器 ​话不多说,直接上配置代码. se ...

  6. nginx静态文件不设置缓存

    找到nginx安装目录下的nginx.conf文件,再nginx里面添加如下的内容 location / { add_header Cache-Control no-cache; add_header ...

  7. Nginx静态文件路径配置

    root目录与alias目录的区别 Nginx路径location配置中,使用root目录与alias目录的区别 1)alias指定的目录是准确的,即location匹配访问的path目录下的文件直接 ...

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

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

  9. 用Lua控制Nginx静态文件的url访问权限

    需求背景:比如我们有一个存储文件的web服务器,一般通过url可直接访问到:http://127.0.0.1/uploads/test.rar,如果我们需要限制别人的访问,可以通过添加lua脚本来控制 ...

随机推荐

  1. Opencv中直方图函数calcHist

    calcHist函数在Opencv中是极难理解的一个函数,一方面是参数说明晦涩难懂,另一方面,说明书给出的实例也不足以令人完全搞清楚该函数的使用方式.最难理解的是第6,7,8个参数dims.histS ...

  2. vue2创建webpack项目build之后无法正常显示页面的问题

    最近在做vue项目的时候,项目正常运行,但是当我打包上线之后,却出现无法出现页面空白的情况,打开控制台,发现无法加载到css和js文件. 仔细观察发现路径中少了一个dis文件夹,于是我加上dist文件 ...

  3. token防爆破?

    先尝试例如删除token  猜token的值等操作 不行就burp抓包 选择Pitchfork模式.选择要爆破的参数 线程设置为1显然只有获取上一个请求返回的taken值才能,做下一次请求 点击Ref ...

  4. java.time包常用类API学习记录

    Java8出来已那么多年了,java.time包之前一直没有使用过,最近正好有用到,在此做个记录. 上图列出了java.time包下的类,接下来我们详细看下其中每个类的用法. Clock:获取到当前时 ...

  5. Neo4j下载与使用

    Neo4j 官网 : https://neo4j.com/ Neo4j 国内: http://neo4j.com.cn/topic/5b003eae9662eee704f31cee http://we ...

  6. JavaScript学习总结(一)——闭包、对象、函数

    一.闭包(Closure) 1.1.闭包相关的问题 请在页面中放10个div,每个div中放入字母a-j,当点击每一个div时显示索引号,如第1个div显示0,第10个显示9:方法:找到所有的div, ...

  7. Luogu P3195 [HNOI2008]玩具装箱

    题目 预处理\(C\)的前缀和\(sum\).设前\(i\)个物品的最小答案为\(f\). \(f_i=\max\limits_{j\in[1,i)}(f_j+(sum_i-sum_j-L)^2)\) ...

  8. AppCan打包问题

    在AppCan IDEA打包的时候出了错误, Failed reading value of registry key: Software\JavaSoft\Java Runtime Environm ...

  9. wode.

    http://www.cnblogs.com/wilber2013/p/4638967.html

  10. python中迭代器和生成器。

    前言:很多python教程中,对python的解释不容易理解,本文记录自己的理解和体会,是对迭代器和生成器的初步理解. 迭代器: 迭代器的实质是实现了next()方法的对象,常见的元组.列表.字典都是 ...