Nginx的主配置文件是:nginx.conf
nginx.conf 主要组成如下:
Nginx的虚拟主机配置
什么是虚拟主机
虚拟主机使用的是特殊的软硬件技术,它把一台运行在因特网上的服务器主机分成一台台“虚拟”的主机,每台虚拟主机都可以是一个独立的网站,可以具有独立的域名,具有完整的Intemet服务器功能(WWW、FTP、Email等),同一台主机上的虚拟主机之间是完全独立的。从网站访问者来看,每一台虚拟主机和一台独立的主机完全一样。
利用虚拟主机,不用为每个要运行的网站提供一台单独的Nginx服务器或单独运行一组Nginx进程。虚拟主机提供了在同一台服务器、同一组Nginx进程上运行多个网站的功能。
在Nginx配置文件(nginx.conf)中,一个最简化的虚拟主机配置
跟Apache -样,Nginx也可以配置多种类型的虚拟圭机:一是基于IP的虚拟主机,二是基于域名的虚拟主机,三是基于端口的虚拟主机。
配置基于lP的虚拟主机
Linux、FreeBSD操作系统都允许添加IP别名。IP别名即:可以在一块物理网卡上绑定多个lP地址。这样就能够在使用单一网卡的同一个服务器上运行多个基于IP的虚拟主机。设置IP别名也非常容易,只须配置系统上的网络接口,让它监听额外的lP地址。在Linux系统上,可以使用标准的网络配置工具(比如ifconfig和route命令)添加lP别名。
以下是添加IP别名的示例:
先用ifconfig命令查看该服务器的lP地址。下面这台服务器有一块物理网卡设备eth0和本地回环设备lo
本地回环代表设备的本地虚拟接口,所以默认被看作是永远不会宕掉的接口。它的主要作用有两个:一是测试本机的网络配置,能PING通127.0.0.1说明本机的网卡和lP协议安装都没有问题;另一个作用是某些SERVER/CLIENT的应用程序在运行时须调用服务器上的资源,一般要指定SERVER的lP地址,但当该程序要在同一台机器上运行且没有的SERVER时,就可以把SERVER的资源装在本机上,SERVER的IP地址设为127.0.0.1也同样可以运行
如果要在eth0网卡设备上添加两个lP别名192.168.8.43和192.168.8.44,可以通过以下的ifconfig和route命令来进行:
这时,再执行ifconfig命令,就可以看到eth0网卡设备上绑定了两个lP别名
这时候,从另外一台服务器Ping 192.168.8.43和192.168.8.44两个IP,如果能够Ping通,则证明配置无误。但是,通过ifconfig和route配置的IP别名在服务器重启后会消失,不过可以将这两条ifconng和route命令
添加到/eLc/rc.local文件中,让系统开机时自动运行,以下是相关命令:
vi /etc/rc.local
在文件末尾增加以下内容,然后保存即可
举例,配置纯静态HTML支持的虚拟主机:
一段server{………}就是一个虚拟主机,如果要配置多个虚拟主机,建立多段server[l配置即可,非常方便。监听的lP和端口也可以不写lP地址,只写端口,
把它配置成“listen 80”,则表示监听该服务器上所有lP的80端口,可通过server_name区分不同的虚拟主机。
配置基于域名的虚拟主机
基于域名的虚拟主机是最常见的一种虚拟主机。只需配置你的DNS服务器,将每个主机名映射到正确的lP地址,然后配置Nginx服务器,令其识别不同的主机名就可以了。这种虚拟主机技术,使很多虚拟主机可以共享同一个lP地址,有效解决了lP地址不足的问题。所以,如果没有特殊要求使你必须用一个基于lP的虚拟主机,最好还是使用基于域名的虚拟主机。
接下来配置基于域名的虚拟主机。在以下的示例中,配置了三个虚拟主机,第一个虚拟主机表示所有对域名aaa.domam.com的访问都由它来处理
每个虚拟主机的网页文件分别存放在了不同的目录中,每个虚拟主机使用了不同的日志文件来记录访问日志