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

  1. .....
  2. events{
  3.   ....
  4. }
  5. http{
  6. ....
  7.   server{
  8.   ....
  9.   }
  10.   server{
  11.   ....
  12.   }
  13. }

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

http module:Nginx的HTTP模块用于控制Nginx的HTTP进程。

server module:虚拟主机。

1、虚拟主机的配置

1.1 什么是虚拟主机?

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

1.2 基于IP的虚拟主机

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

1.2.1 添加IP别名

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

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

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

1.2.2 配置虚拟主机

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

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

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

1.3、基于域名的虚拟主机

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

下面是配置代码:

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

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

  1. 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,其格式为:

  1. 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格式德日志记录,可以使用以下示例:

  1. Access_log /data1/logs/filename.log;
  2.  
  3. 或者:
  4.  
  5. Access_log /data1/logs/filename.log combined;

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

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

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

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

注意:

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

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:禁止使用缓存。

示例:

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

3、nginx日志文件的分割

指令如下:

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

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

初入Nginx--配置篇的更多相关文章

  1. 初入TensorFlow————配置TensorFlow

    能看到这说明你对python已经有一定的了解了,因此很多基础直接跳过. 一.TensorFlow环境配置: TensorFlow的环境配置在网上很多的教程都是用anaconda的方式,但是很容易出现冲 ...

  2. Git初入

    Git记录 使用git 也有一段时间了, git的入门级了解也就不再多说, 但平常使用中, 仍然会遇到很多问题, 在此记录一二. 在查资料的过程中, 发现了两个比较好的资料: 特别是第二个, 相当详细 ...

  3. nginx介绍(三) 配置篇

    3. nginx配置 nginx配置系统受益于Igor Sysoev(nginx创始人)在Apache(阿帕奇软件基金会)的经历.Igor Sysoev洞察出可扩展的配置系统对于一个web服务器来说是 ...

  4. nginx入门篇----nginx服务器基础配置

    1.nginx.conf文件结构...                         #全局块  events{  ...  }  http                      #http块{ ...

  5. 初识nginx——配置解析篇

    一.nginx的介绍 nginx是由俄罗斯人开发的一款高性能的http和反向代理服务器,也可以用来作为邮件代理.相比较于其他的服务器,具有占用内存少,稳定性高等优势 二.nginx的配置 nginx的 ...

  6. Nginx入门篇(四)之常用配置解析

    1.Nginx状态信息功能 Nginx的模块当中有一个ngx_http_stub_status_module模块,这个模块主要记录Nginx的基本访问信息,要使用该模块,需要在编译的时候增加http_ ...

  7. Linux服务之nginx服务篇四(配置https协议访问)

    一.配置nginx支持https协议访问 编译安装nginx的时候需要添加相应的模块--with-http_ssl_module和--with-http_gzip_static_module(可通过/ ...

  8. Nginx配置详解

    序言 Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的.从2004年发布至今,凭借开源的力量,已经接近成熟与完善. Nginx功能丰富,可作为HTTP服务器,也 ...

  9. Nginx配置详解 http://www.cnblogs.com/knowledgesea/p/5175711.html

    Nginx配置详解 序言 Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的.从2004年发布至今,凭借开源的力量,已经接近成熟与完善. Nginx功能丰富,可作 ...

随机推荐

  1. FTP的PORT(主动模式)和PASV(被动模式)

    最近做一个项目用到FTP和其它系统进行文件传输,结果在FTP网络连接的问题上花了很多时间,由于太久没搞多FTP,忘记了FTP不单单开放21端口,客户端采用不同连接模式对网络有不同.在此重温一下FTP的 ...

  2. Java 枚举 enum 详解

    本文部分摘自 On Java 8 枚举类型 Java5 中添加了一个 enum 关键字,通过 enum 关键字,我们可以将一组拥有具名的值的有限集合创建为一种新的类型,这些具名的值可以作为常规的程序组 ...

  3. FL Studio中如何制作和混音Dutch Lead(上)

    Dutch Lead是电子音乐类型Dutch House以及Bigroom House中常用的Lead音色,这一篇文章中我将从制作和混音两方面来讲解Dutch Lead. (一).Dutch Lead ...

  4. 苹果电脑清理软件CleanMyMac X好用吗?

    为了维护mac系统健康,优化系统功能,我们需要定期给电脑进行清理.那么作为mac清理软件CleanMyMac X软件具备哪些独特性和实用性呢?今天就给大家说明一下. 1. 简洁大气的外观. 用户正版官 ...

  5. leetcode 1046

    class Solution {       public int lastStoneWeight(int[] stones) {        MaxHeap s=new MaxHeap(stone ...

  6. python批量爬取猫咪图片

    不多说直接上代码 首先需要安装需要的库,安装命令如下 pip install BeautifulSoup pip install requests pip install urllib pip ins ...

  7. 精尽MyBatis源码分析 - 文章导读

    该系列文档是本人在学习 Mybatis 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释(Mybatis源码分析 GitHub 地址.Mybatis-Spring 源码分析 GitHub ...

  8. activiti数据表介绍

    activiti6.0数据库介绍 Acitiviti6.0数据库中一共有28张表,表的命名都是以ACT_开头的.第二部分是一个两个字符用例表的标识. 用于自我学习记录,后期不定期更新~~~ 数据库描述 ...

  9. 实用主义当道——GitHub 热点速览 Vol.48

    作者:HelloGitHub-小鱼干 当你看到实用为本周的关键词时,就应该知道本周的 GitHub 热点霸榜的基本为高星老项目,例如:知名的性能测试工具 k6,让你能在预生产环境和 QA 环境中以高负 ...

  10. Beta冲刺随笔——Day_Ten

    这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系) 这个作业要求在哪里 Beta 冲刺 这个作业的目标 团队进行Beta冲刺 作业正文 正文 其他参考文献 无 今日事今日毕 林涛: ...