Nignx基本配置和优化
Nginx主配置文件在conf目录下的nginx.conf文件中。
在server中配置监听的服务器和index首页。
nginx.conf文件主要由event、http(内涵server)构成。
虚拟主机:使用软硬件技术,把一台运行在Internet上的服务器分成一台台“虚拟”的主机,各台虚拟的主机可以是一个独立的网站,可以具有独立的域名,具有完整的Internet服务。
利用虚拟主机,不用为每个要运行的网站提供一台单独的nginx服务器或单独运行一组nginx进程。虚拟主机提供了为一台服务器、同一组nginx进程上运行多个网站的功能。
Nginx可以配置多种类型的虚拟主机:
1)基于IP的虚拟主机
2)基于域名的虚拟主机
3)基于端口的虚拟主机
3.1基于IP的虚拟主机
IP别名:可以在一块网卡上绑定多个IP地址
这样就能在使用单一网卡的服务器上运行多个基于IP的虚拟主机。
在Linux系统上,可以使用ifconfig和route添加IP别名。服务重启后悔消失。
可以将命令添加到/etc/rc.local文件中。
Ifconfig可以看到物理网卡设备的IP地址(eth0)和本地回环地址(lo)127.0.0.1.
本地回环地址127.0.0.1的作用:测试本机的网络配置(能ping通说明本机网卡和IP协议安装木有问题);需要运行server的的调用。
添加IP别名:
/sbin/ifconflg eth0: 1 IP broadcast 各种地址配置巴拉巴拉……
配置虚拟主机仅需添加HTTP中的server即可。
修改listen、server_name、root
3.2基于域名的虚拟主机
仅需配置DNS服务器,将每个主机名映射到相应的IP;配置nginx服务器,令其识别不同的主机名即可。
可以有效解决IP地址不足的问题。最好选用基于域名的虚拟主机技术。
3.3日志文件的分割
Nginx访问日志文件的配置主要有如下命令:
Log_format:设置日志格式
Access_log:指定日志文件的存放路径、格式、大小。
2条指令在nginx配置文件的位置是http{}之间。也可以是在虚拟主机之间,级server之间。
Apache采用cronlog轮转日志。Nginx采用MV命令实现。
如Mv *.log *_20131008.log
Kill –USER1 Nginx主进程号让nginx重新生成一个新日志*.log
若要每天切分日志,需要crontab定时任务来完成。
3.4nginx压缩输出
Gzip压缩页面需要服务器和浏览器支持。浏览器基本都支持,nginx的Gzip压缩有一组gzip指令组成。位置在于2个http{}之间。
Nginx有自动列目录的功能。
3.5浏览器缓存设置
浏览器缓存是为了加速浏览,浏览器在用户磁盘对最近请求过的文档进行存储,当访问者再次访问该页面,浏览器就从磁盘取出,加速页面的阅览。该方式环节了网络资源,提高了效率。
浏览器缓存可以通过expires指令输出header实现。指令expires [time| epoch | max | off].使本指令控制HTTP相应中的Expires和cache-control的Header头信息。
对常见图片、Flash文件的缓存时间一般是30天,JS是1小时。
Location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
Expires 30d;
}
Location ~ .*\.(js|css)$
{
Expires 1h;
}