nginx静态资源服务器
- 前言
- 访问
前言
上一篇博客,已经讲了如何安装nginx,和基本命令的使用。这一篇接着搭建静态资源服务器。我们将前端静态页面放在nginx根目录下,然后配置nginx.conf。 如下:
nginx.conf配置:
vi nginx.conf
#user nobody;
worker_processes 4;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#把日志格式前面的注释打开
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
#日志记录每一次访问的信息
access_log logs/zy.access.log main;
#允许跨域访问
add_header 'Access-Control-Allow-Origin' '*';
sendfile on;
autoindex on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
#配置缓存的路径,目录层级,缓存name,大小,缓存失效时间60分钟
proxy_cache_path /tmp/nginxcache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;
server {
listen 8084;
server_name localhost;
location / {
root y_web;
#alias y_web; #效果等同于root
index index.html;
}
#设置浏览器缓存的1小时后过期时间
expires 1h;
#使用缓存
proxy_cache my_cache;
#缓存的key,根据用户访问的uri和参数进行缓存
proxy_cache_key $host%uri$is_args$args;
#缓存什么样的响应,仅对以下响应码缓存,且设置缓存时间
proxy_cache_valid 200 304 302 1d;
#location ~ .*\.(js|css|html|img)$ {
# root http://127.0.0.1:8084/js;
# }
}
}
保存配置文件,重启nginx.
nginx -s reload
访问
访问nginx,Ip:8084,可看到资源正常展示出来了
再看看nginx/logs/zy.access.log日志,可从日志中看到 客户端的IP、客户端浏览器使用GET方法、使用的浏览器内核信息、浏览器版本等
2.使用Gzip压缩提升性能
客户端与服务器之间进行数据传输时,如果能把数据进行压缩,减少传输流量、传输时间,为更多用户提供更快的响应给,nginx使用Gzip压缩也是要更改nginx.conf配置文件
在上面的配置文件中可以看到 #gzip on; 配置,把注释打开,并加入压缩的其它配置
配置文件内容如下:
#gzip on; 开启压缩
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
在火狐浏览访问网址,可以看到,部分文件已经为压缩了。
我们还可以从http请求头与响应头中看到
Accept-Encoding: gzip,deflate #请求头支持gzip压缩
Content-Encoding: gzip #响应头传递回来的是gzip压缩后的数据
更多
在开发项目时,可以把静态资源如:css、js、image等文件单独部署在nginx上,项目中引用静态资源的地址,这样可以nginx不用把请求转发后上游tomcat服务中,1.减少网络传输,2.nginx静态资源处理性能大大高于tomcat