用Nginx搭建一个静态的web资源服务器
简单使用
1、可以在安装的nginx目录新建自己的目录zy,里面放入我们的一些图片、静态资源等
2、配置nginx的安装目录的/conf/nginx.conf
示例
server { listen 80; #监听端口 server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { #所有的请求 #root html; #root有一些问题就是会将url一些路径带到文件目录中来,所以我们用alias alias zy/ #alias和root功能差不多 index index.html index.htm; #默认访问localhost-->localhost:80/index.html } }
3、启动nginx
./sbin/nginx -s reload
高级功能
1、可以配置文件压缩,将文件压缩后,发送给浏览器 /conf/nginx.conf
gzip on; #打开gzip压缩 gzip_min_length 1; #小于1字节的文件不压缩了,不需要在浪费cpu资源来压缩文件 gzip_comp_level 2; #压缩级别为2 gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;#只有这些文件才被压缩
2、如果项目中有一个目录,需要将他以列表的形式展示出来
配置
location / { alias html/; autoindex on; #开启功能 }
效果
如果没有配置autoindex on;访问下面路径就会出现403不允许访问目录
3、将某些数据的请求限制速度
使用很少的带宽,缓慢的处理这些比较大的数据,目的可以有更多的带宽处理其他的请求响应,对于大并发来说非常有用。
比如一个请求过来了,服务器会给他响应许多的文件下载到客户端的浏览器上,此时我们将一些不是必须展示的大文件限制带宽,给用户访问一些必要的css,js等小文件。
配置:一个100k的图片,需要发送100秒,才能发送完
这样配置了,直接访问/dd.png,就访问不了(没有探索原理)
location / { alias html/; } location /html/dd.png { alias html/dd.png; #限制这张图片的传输带宽 set $limit_rate 1k; #每秒传输这么1k字节 }
4、记录access.log 日志
默认的日志格式
main:给日志设置一个名字
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';
可以给不同的server日志存储在不同的log中(默认每一个服务的日志存储在access.log)
server { listen 8080; server_name localhost; charset utf-8; access_log logs/host.access.log main; #main就是配置的main }
log_format中的内容可以包扩:http://nginx.org/en/docs/http/ngx_http_core_module.html#variables+第三方模块的额外变量都可以存放到日志中