前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >搭建nginx静态资源站

搭建nginx静态资源站

作者头像
码缘
发布2019-07-27 18:20:47
1.3K0
发布2019-07-27 18:20:47
举报
文章被收录于专栏:PHP修行之路PHP修行之路

搭建静态资源站包括以下几部分:

  1. root指令与alias指令的区别
  2. 使用gzip压缩资源
  3. 如何访问指定目录下的全部资源文件
  4. 如何限制访问流量
  5. 如何自定义log日志

root指令与alias指令的区别

我们的网站静态资源放到 /home/wwwroot/demo 目录下

代码语言:javascript
复制
root@2a33e33fa785:/home/wwwroot/demo# ls
about.html  about1.html  css  fonts  gallery.html  images  index.html  js  typography.html

nginx.conf 文件

代码语言:javascript
复制
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;

        location /demo/ {
            root   /home/wwwroot;
       #alias  /home/wwwroot/demo/;
        }

    }

}

上面的配置文件中 root和alias 指令配置完之后实现的效果是一样的,其实用的区别在于:

  • 使用root指令时,访问 http://ip:端口号/demo/index.html 时,nginx回去root 指定的目录下按照url地址来寻找index.html文件
  • 使用 alias 指令就相当于为 /demo/ 起了个别名 /demo/ 与 alias 指定的目录是等同的所以当同样访问 http://ip:端口号/demo/index.html 时,nginx 获取 alias 指定的目录下寻找 index.html 文件

使用gzip压缩

代码语言:javascript
复制
#开启gzip
gzip  on;   
#低于1kb的资源不压缩
gzip_min_length 1k; 
#压缩级别【1-9】,越大压缩率越高,同时消耗cpu资源也越多,建议设置在4左右。
gzip_comp_level 3; 
#需要压缩哪些响应类型的资源,多个空格隔开。不建议压缩图片,下面会讲为什么。
gzip_types text/plain application/javascript application/x-javascript text/javascript text/xml text/css;  

使用前 index.html 的请求大小

开启gzip之后

访问指定目录下的全部资源文件

在 server 或者 http 或者 location 指令中 加入 autoindex on; 指令

限制访问流量

添加 set $limit_rate 1k 限制请求每秒只能传输1kB数据,这时我们访问页面会明显感觉到很慢

设置log日志

设置日志格式 log_format 模板名称 日志中包含的内容 注意:模板中所保存的内容可以是nginx模块及第三方模块提供的任意参数内容,例如 这里 提供的变量都可以存储起来

代码语言:javascript
复制
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 日志路径 模板名称;

代码语言:javascript
复制
access_log  logs/host.access.log  main;

最后是完整的配置文件

代码语言:javascript
复制
worker_processes  1;

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"';

    sendfile        on;

    keepalive_timeout  65;

    gzip  on;
    gzip_min_length 1k;
    gzip_comp_level 3;
    gzip_types text/plain application/javascript application/x-javascript text/javascript text/xml text/css;

    server {
        listen       80;
        server_name  localhost;

        access_log  logs/host.access.log  main;

        location / {
            root   /home/wwwroot/demo/;
            autoindex on;
            set $limit_rate 1k;
        }

    }

}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-07-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档