zoukankan      html  css  js  c++  java
  • nginx中配置文件的讲解

    一:

    1.配置文件的结构

      nginx由配置文件中指定的指令控制的模块组成。 指令分为简单指令和块指令。

      一个简单的指令由空格分隔的名称和参数组成,并以分号(;)结尾。

      块指令具有与简单指令相同的结构,但不是以分号结尾,而是以大括号({})包围的一组附加指令结束

      eventshttpserverlocation。

      events 和http指令驻留在主上下文中,serverhttp中的,而locationhttp块中

    二:静态网站服务 

    1.目录

    [root@localhost ~]# mkdir -p /data/www
    [root@localhost ~]# mkdir -p /data/images
    并在上面的两个目中分别添加一个静态网页和.png格式的图片。

    2.配置nginx.conf

    server {
        location / {
            root /data/www;
        }
        location /images/ {
            root /data;
        }
    }

    3.解释

      响应以/images/开头的URI的请求,服务器将从/data/images目录发送文件。例如,响应http://localhost/images/logo.png请求,nginx将发送服务上的/data/images/logo.png文件。 

      不以/images/开头的URI的请求将映射到/data/www目录。 例如,响应http://localhost/about/example.html请求时,nginx将发送/data/www/about/example.html文件。

    三:代理服务器

    1.目录

      将是一个监听端口8080的简单服务器,并将所有请求映射到本地文件系统上的/data/up1目录。

      创建此目录并将index.html文件放入其中。

      

    2.conf(这是一个简单代理)

    server {
        listen 8080;
        root /data/up1;
    
        location / {
        }
    }

    3.解释

      root指令位于server块上下文中。 当选择用于服务请求的location块不包含自己的root指令时,将使用此root指令。

      这个比较重要。

      说明了/data/up1这个目录下面的文件是会被访问到的。

      root指令指定将用于搜索文件的根目录。

      为虚拟服务器定义了root指令。 它适用于不包括root指令的所有location以显式重新定义根

    4.conf(代理配置,数据转发

    server {
        location / {
            proxy_pass http://localhost:8080/;
        }
    
        location ~ .(gif|jpg|png)$ {
            root /data/images;
        }
    }

    5.解释

      

    6.整个conf

    #user  nobody;
    worker_processes  1;
    
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
    
    #pid        logs/nginx.pid;
    
    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/access.log  main;
    
        sendfile        on;
        #tcp_nopush     on;
    
        #keepalive_timeout  0;
        keepalive_timeout  65;
    
        #gzip  on;
    
        ## 新服务(服务处理)
        server {
            listen 8080;
            root /data/up1;
    
            location / {
            }
        }
    
        ## 代理配置,数据转发
        server {
            location / {
                proxy_pass http://localhost:8080/;
            }
    
            location ~ .(gif|jpg|png)$ {
                root /data/images;
            }
        }
    }
    
    

    四:几个顶级指令

      几个顶级指令(称为上下文)将适用于不同流量类型的指令组合在一起:

      指定在这些上下文之外的指令是在主上下文中。

     五:try_files指令

    1.

      server {
          root /www/data;
    
          location /images/ {
              try_files $uri /images/default.gif;
          }

     在这种情况下,如果与原始URI相对应的文件不存在,则NGINX将内部重定向到最后一个参数中指定的URI,也就是返回/www/data/images/default.gif

    2.

     location / {
          try_files $uri $uri/ $uri.html =404;
      }

      如果try_files指令的任何参数都不会解析为现有文件或目录,则会返回404错误

      

    
    


  • 相关阅读:
    cocospods 卡在 Analyzing dependencies
    android px、sp、dp之间的互转
    Android 4.4环境搭建——Android SDK下载与安装
    我心中的核心组件(可插拔的AOP)~大话开篇及目录
    EF架构~AutoMapper对象映射工具简化了实体赋值的过程
    我心中的核心组件(可插拔的AOP)~第二回 缓存拦截器
    EF架构~为EF DbContext生成的实体添加注释(T5模板应用)
    品味编程~底层开发人员应该这样设计一个字体类
    Study notes for Clustering and K-means
    深入理解Oracle索引(25):一招鲜、吃遍天之单字段索引创建思路
  • 原文地址:https://www.cnblogs.com/juncaoit/p/7473942.html
Copyright © 2011-2022 走看看