初入Nginx--配置篇
Nginx的主配置文件为/path/to/nginx/nginx.conf。Nginx.conf的配置文件结构主要由以下几个部分组成:
.....
events{
....
}
http{
....
server{
....
}
server{
....
}
}
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 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;
注意:
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:禁止使用缓存。
示例:
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,具体指令不在此阐述。自己动手搜搜。
初入Nginx--配置篇的更多相关文章
- 初入TensorFlow————配置TensorFlow
能看到这说明你对python已经有一定的了解了,因此很多基础直接跳过. 一.TensorFlow环境配置: TensorFlow的环境配置在网上很多的教程都是用anaconda的方式,但是很容易出现冲 ...
- Git初入
Git记录 使用git 也有一段时间了, git的入门级了解也就不再多说, 但平常使用中, 仍然会遇到很多问题, 在此记录一二. 在查资料的过程中, 发现了两个比较好的资料: 特别是第二个, 相当详细 ...
- nginx介绍(三) 配置篇
3. nginx配置 nginx配置系统受益于Igor Sysoev(nginx创始人)在Apache(阿帕奇软件基金会)的经历.Igor Sysoev洞察出可扩展的配置系统对于一个web服务器来说是 ...
- nginx入门篇----nginx服务器基础配置
1.nginx.conf文件结构... #全局块 events{ ... } http #http块{ ...
- 初识nginx——配置解析篇
一.nginx的介绍 nginx是由俄罗斯人开发的一款高性能的http和反向代理服务器,也可以用来作为邮件代理.相比较于其他的服务器,具有占用内存少,稳定性高等优势 二.nginx的配置 nginx的 ...
- Nginx入门篇(四)之常用配置解析
1.Nginx状态信息功能 Nginx的模块当中有一个ngx_http_stub_status_module模块,这个模块主要记录Nginx的基本访问信息,要使用该模块,需要在编译的时候增加http_ ...
- Linux服务之nginx服务篇四(配置https协议访问)
一.配置nginx支持https协议访问 编译安装nginx的时候需要添加相应的模块--with-http_ssl_module和--with-http_gzip_static_module(可通过/ ...
- Nginx配置详解
序言 Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的.从2004年发布至今,凭借开源的力量,已经接近成熟与完善. Nginx功能丰富,可作为HTTP服务器,也 ...
- Nginx配置详解 http://www.cnblogs.com/knowledgesea/p/5175711.html
Nginx配置详解 序言 Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的.从2004年发布至今,凭借开源的力量,已经接近成熟与完善. Nginx功能丰富,可作 ...
随机推荐
- 划分问题(Java 动态规划)
Description 给定一个正整数的集合A={a1,a2,-.,an},是否可以将其分割成两个子集合,使两个子集合的数加起来的和相等.例A = { 1, 3, 8, 4, 10} 可以分割:{1, ...
- Redis订阅
1.Redis订阅简介 进程间的一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息. 2.Redis订阅命令 3.Redis订阅的使用 先订阅后发布后才能收到消息, 1 可以一次性订 ...
- [原题复现+审计][BJDCTF2020]Mark loves cat($$导致的变量覆盖问题)
简介 原题复现:https://gitee.com/xiaohua1998/BJDCTF2020_January 考察知识点:$$导致的变量覆盖问题 线上平台:https://buuoj.cn( ...
- day01-系统基础信息模块
前言:2015年,由于大规模采用云平台虚拟机部署应用,每套应用系统的MySQl.接口机.WEB服务器.文件服务器需要经常进行版本升级.配置更新.安全补丁加固.iptables调整.配置核实,大量的手工 ...
- 建议收藏!2020阿里面试题(JVM+Spring Cloud+微服务)上
前言 对于大厂面试,我想要强调的一点就是心态真的很重要,是决定你在面试过程中发挥的关键,若不能正常发挥,很可能就因为一个小失误与offer失之交臂,所以一定要重视起来.另外提醒一点,充分复习,是消除你 ...
- 不是吧!做了两年java还没弄懂JVM堆?进来看看你就明白了
堆的核心概述 一个JVM实例只存在一个堆内存,堆也是java内存管理的核心区域Java堆区在jvm启动的时候被创建,其空间大小也就确定了.是jvm管理的最大一块内存空间.(堆内存的大小可以调节)< ...
- FL Studio乐理教程之添加和弦
和弦是指有一定音程关系的一组声音,即将三个或以上的音,按照三度或非三度的叠置关系,在纵向上加以结合,就称为和弦. FL Studio可以编辑和弦吗?当然可以!首先我们使用FL Stuido20钢琴卷帘 ...
- Codeforces Round #674 (Div. 3) F. Number of Subsequences 题解(dp)
题目链接 题目大意 给你一个长为d只包含字符'a','b','c','?' 的字符串,?可以变成a,b,c字符,假如有x个?字符,那么有\(3^x\)个字符串,求所有字符串种子序列包含多少个abc子序 ...
- C++基础知识篇:C++ 存储类
存储类定义 C++ 程序中变量/函数的范围(可见性)和生命周期.这些说明符放置在它们所修饰的类型之前.下面列出 C++ 程序中可用的存储类: auto register static extern m ...
- 容器中实现拉取其它服务器的jar包程序
缘由:在做接口自动化测试时,若业务场景有一个前置仓库,在该仓库内完成一系列的场景测试,一旦某一场景测试失败,脏数据对环境造成影响则需要清理: 1.我容器的内核系统为Debian GNU/Linux 1 ...