美文网首页
Nginx静态服务

Nginx静态服务

作者: hellomyshadow | 来源:发表于2019-03-26 16:57 被阅读0次

搭建一个Nginx静态资源Web服务器

1. 在nginx目录下创建测试目录staticres,存放静态资源,如index.html
2. 配置文件nginx/conf/nginx.conf
http {
    ......

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';  #自定义日志格式,别名为main
    ......

    gzip on;    # 开启gzip压缩,默认是关闭的
    gzip_min_length 1;  #当资源文件大于1B时,开启压缩;低于1B时,一个TCP报文就可以发送了,没必要浪费CPU资源去压缩
    gzip_comp_level 2;  #压缩级别
    gzip_types text/plain application/x-javascript text/css application/xml text/javascript
                application/x-httped-php image/jpeg image/gif image/png;    #压缩的文件类型

    server {
        listen 8080;    #监听8080端口
        server_name localhost;  #本机IP地址
        access_log  logs/host.access.log  main; #记录访问日志,指定日志路径和使用的格式main
        location / {    #定位 http://localhost:8080 下的资源位置
            alias staticres/; #指定资源目录,向nginx/staticres目录下查找资源
            index   index.html index.php;  #配置欢迎页,默认初始页为index.html
        }
    }
}
1. 访问:http://localhost:8080  --> 默认定位到 staticres/index.html
2. root 和 alias 指令都用于指定文件路径
    1. root
        语法:root path
        默认值:root html
        作用指令节点:http、server、location、if
    2. alias
        语法:alias path
        作用指令节点:location
    3. root与alias主要区别在于Nginx如何解释location后面的uri,这会使两者分别以不同的方式将请求映射到服务器文件上;
        1. root的处理结果:root路径+location路径
        2. alias的处理结果:使用alias路径替换location路径
        location ~ ^/weblogs/ {
            root /www/html/;
            alias /www/html/;
        }
        3. 如果一个请求的URI是/weblogs/a.html,root指令会返回服务器上的 /www/html/weblogs/a.html 的文件;
        alias指令会返回服务器上的 /www/html/a.html 的文件,即 alias指令会丢弃 location 后的路径 /weblogs/
        4. 还有一个重要的区别:alias后面必须要用 / 结束,否则会找不到文件,而root则可有可无.
3. 当URL访问目录时,以列表的形式直接列出目录下的文件
  location / {
      alias staticres/;
      index abc123abc.html;  #指定一个不存在的名字,否则默认访问index.html
      autoindex on;   #借助nginx模块ngx_http_autoindex_module
  }
4. 限制用户访问的带宽
    1. 公网带宽是非常有限的,高并发的用户形成一个争抢关系,当有用户访问大文件时,应限制其带宽,
    以分离出足够的带宽,让其他用户访问到必要的小文件,如CSS文件、JS文件等
    2. 使用 set 命令 + 内置变量
    location / {
        ...
        set $limit_rate 1k;
    }
    3. $limit_rate 表示限制用户的响应速度,1k表示每秒传输1KB
5. 日志记录
    1. log_format:定义日志格式和别名
    2. main 表示日志格式的别名,不同的日志需要不同的格式

相关文章

网友评论

      本文标题:Nginx静态服务

      本文链接:https://www.haomeiwen.com/subject/luqnvqtx.html