zoukankan      html  css  js  c++  java
  • 初入Nginx--配置篇

    Nginx的主配置文件为/path/to/nginx/nginx.confNginx.conf的配置文件结构主要由以下几个部分组成:

    .....
    events{
      ....
    }
    http{
    ....
      server{
      ....
      }
      server{
      ....
      }
    }

    events module:控制nginx处理连接的方式。

    http module:NginxHTTP模块用于控制NginxHTTP进程。

    server module:虚拟主机。

     

    1、虚拟主机的配置

    1.1 什么是虚拟主机?

      把一台运行在因特网伤德服务器主机分成一台台虚拟的主机,每台虚拟主机都可以是一个独立的站点,可以具有独立的域名、IP等,具有完整德Internet服务器功能,同一台主机上的虚拟主机之间是完全独立的,对于访问者来说,它们就是一台台独立的主机。Apache一样,Nginx支持多种类型的虚拟主机:基于IP的虚拟主机、基于域名的虚拟主机、基于端口的虚拟主机。

    1.2 基于IP的虚拟主机

      无论是通过IP别名在一台服务器上配置多个IP地址,还是通过多块网卡在服务器上配置多个IP地址,在Nginx中都能将其配置成为基于IP地址德虚拟主机。本文中采用的是通过IP别名配置虚拟机。

    1.2.1 添加IP别名

    eth0网卡设备上添加1IP别名192.168.8.43,通过如下命令来运行:

    1 sudo ifconfig eth0:1 192.168.8.43 broadcast 192.168.8.255 netmask 255.255.255.0 up
    2 route add -host 192.168.8.43 dev eth0:1

    再执行ifconfig命令就可以看到eth0网卡上多了一个IP。这种方式服务器重启后会消失。

    1.2.2 配置虚拟主机

    nginx.conf中。配置1个纯静态HTML支持的虚拟主机。下面是配置代码:

     1 http{
     2   Server {
     3       listen  80;            #监听德端口
     4       server_name 192.168.8.43;      #监听的IP地址
     5       access_log    logs/access.log;    #访问日志文件存放路径
     6       error_log      logs/errors.log;      #错误日志文件存放路径
     7       #日志格式可以自定义,默认的是combined。格式后面再说。
     8   
     9       location / {
    10       index index.html index.htm #默认首页文件,顺序从左到右
    11       root //htdocs/server1 #HTML网页文件存放的位置
    12       }
    13   }
    14  }

    这里只配置了一个IP虚拟主机,配置多个如上所示向http块中添加server即可。

    1.3、基于域名的虚拟主机

    基于域名的虚拟主机是最常见的。只需要配置好本地的hosts文件或者你的DNS服务器,将域名能够正确的映射到相应的IP地址上即可。

    下面是配置代码:

     1 http{
     2   Server {
     3       listen  80;            #监听德端口
     4       server_name www.domain.com;      #监听的域名
     5       access_log    logs/access.log;    #访问日志文件存放路径
     6       error_log      logs/errors.log;      #错误日志文件存放路径
     7       #日志格式可以自定义,默认的是combined。格式后面再说。
     8   
     9       location / {
    10       index index.html index.htm #默认首页文件,顺序从左到右
    11       root /htdocs/server1 #HTML网页文件存放的位置
    12       }
    13   }
    14 }

    然后在/etc/hosts文件中添加一项

    127.0.0.1(这里是要映射的IP地址)   www.domain,com

    接下来访问www.domain.com 这个域名就会映射到htdocs/server1/index.html文件了。

     

    2、Nginx的日志文件配置

    Nginx日志相关的指令主要有两条,一条log_format,用来设置日志的格式;另外一条是access_log,用来指定日志文件的存放路径、格式和缓存。

    2.1 log_format指令设置日志格式

    语法:log_format name format [format ...]

    其中name表示定义的格式名称,format表示定义的格式样式。Log_format有一个默认的格式combined,其格式为:

    log_format combined ‘$remote_addr - $remote_user [$time_local] ”$request$status  $body_bytes_sent$http_referer”  “$http_user_agent”’;

    注意:log_format指令设置德name名称不可以重复。

    当用户使用代理访问时,$remote_addr无法记录用户的真实IP地址,可以换成$http_x_forwarded_for变量代替。

    2.2 access_log指令指定日志文件存放路径

    语法:access_log path [format [buffer=size] | off]]

    其中path表示日志文件的存放路径,format表示使用log_format指令设置的日志文件的名称,buffer=size表示设置内存缓冲区的大小,off表示不记录日志。

    如果使用默认的combined格式德日志记录,可以使用以下示例:

    Access_log /data1/logs/filename.log;
    
    或者:
    
    Access_log /data1/logs/filename.log combined;

    如果使用自定资格的日志记录,可以使用以下示例:

    Access_log /data1/logs/access.log myformat buffer=32k;

    Nginx0.7.4之后的版本中,access_log指令中的日志文件路径可以包含变量,例如:

    Access_log /data1/logs/$server_name.log combined;

    注意:

      1Nginx进程必须有对目标路径创建文件权限。

      2、缓冲不会被使用。

      3、对于每一条日志记录,日志文件都将先打开文件,再写入日志记录,然后关闭

    为了提高包含变量的日志文件存放路径德性能,须配合使用open_log_file_cache指令设置经常被使用的日志文件描述符缓存。

    语法:open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time] | off

    参数:

    Max:指设置缓存中德最大文件描述符数量,如果超过了这个数量会采用LRU算法清除。

    Inactive:设置一个时间,如果在设置的时间内没有使用此文件描述符,则自动删除此描述符。

    Min_uses:在参数inactive指定的时间内,如果日志文件超过被使用德次数,则将该日志文件的描述符记入缓存。默认为1

    valid:设置多长时间检查一次,看一看变量指定的日志文件路径与文件名是否仍然存在。默认60秒。

    Off:禁止使用缓存。

    示例:

    open_log_file_cache max=1000 inactive=20s min_uses=2 valid=1m;

     

    3、nginx日志文件的分割

    指令如下:

    mv /data1/logs/access.log /data1/logs/20131225.log
    
    kill -USR1 Nginx主进程号(可以使用`cat /usr/local/nginx/nginx.pid`代替若配置文件中指定了pid文件的位置)

    当然不可能每次都是手动去完成切割,我们需要让服务器自己定时的去切割日志文件。这时我们需要借助crontab,具体指令不在此阐述。自己动手搜搜。

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    App Submission Issues
    番茄钟App(Pomodoro Tracker)
    WatchKit App Submission Issues
    Watch​Kit Learning Resources
    Scrum Planning Card
    How to get cocoapods work on Yosemite
    如何在DigitalOcean安装Ghost
    Swift学习资源
    Xcode 6 模拟器路径
    【Android-4】Scheme跳转协议
  • 原文地址:https://www.cnblogs.com/MonkeyF/p/3492945.html
Copyright © 2011-2022 走看看