一、Nginx的应用概述
Nginx作为一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。主要有以下3方面的应用:
1、http服务器
Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。
2、虚拟主机
可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。
3、反向代理,负载均衡
当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。
本文主要讲下实现多虚拟主机的配置,应该如何做
二、什么是虚拟主机
虚拟主机使用的是特殊的软硬件技术,它把一台服务器主机分成一台台“虚拟”的主机,每台虚拟主机都可以具有独立的域名,具有完整的Intemet服务器功能(WWW、FTP、Email等),同一台主机上的虚拟主机之间是完全独立的。从网站访问者来看,每一台虚拟主机和一台独立的主机完全一样。
利用虚拟主机,不必为每个要运行的网站提供一台单独的Nginx服务器或单独运行一组Nginx进程。虚拟主机提供了在同一台服务器、同一组Nginx进程上运行多个网站的功能。
可以实现在同一台服务器上运行多个网站,并且网站之间相互独立各不干扰。
三、基于IP 的虚拟主机配置
1、如果是多网卡就可以直接使用不同的IP地址,如果是单网卡则再系统中虚拟出两个网卡,设置为不同的IP地址
将/etc/sysconfig/network-scripts/ifcfg-eth0文件复制一份,命名为ifcfg-eth0:1
cd /etc/sysconfig/network-scripts
cp ifcfg-eth0 ifcfg-eth0:1
修改其中内容:
DEVICE=eth0:1
IPADDR=192.168.56.127
其他项不用修改,然后执行service network restart 重启网络服务
此时我们就有两个IP地址:
IP1=192.168.56.126
IP2=192.168.56.127
2,修改nginx配置文件
在nginx/conf/nginx.conf是nginx核心配置文件,nginx对虚拟主机的配置,一个server就是一个虚拟主机。Nginx对于多虚拟主机的支持,主要是对server标签的添加,指定location启动路径即可。
1)先将/nginx/html文件复制成两份,修改html/index.html文件,用于标记不同nginx首页信息。
2)修改nginx.conf配置文件,添加两个server节点,指定ip
worker_processes 4;
pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 192.168.56.126:80;
server_name localhost;
location / {
root html;
index index.html ;
}
}
server {
listen 192.168.56.127:80;
server_name localhost;
location / {
root test;
index index.html ;
}
}
}
完成后重新加载配置
nginx -s reload
后面将结果贴上
四、基于不同端口的虚拟主机配置
在nginx conf 的配置目录下添加,port2.conf ,然后在nginx.conf 里面 include port2.conf
worker_processes 4;
pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
include port2.conf;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
}
}
port2.conf
server {
listen 81;
server_name localhost;
location / {
root test;
index index.html ;
}
}
完成之后重新加载配置:
nginx -s reload
后面将结果贴上
五:基于不同域名的虚拟主机:
为了测试,我们在hosts里面新加了两个 IP 域名解析
192.168.2.158 1.imoocc.com
192.168.2.158 2.imoocc.com
这样直接将nginx.conf 里面的hostname 修改为 1.imoocc.com port2.conf 里面的hostname 修改为 2.imoocc.com,,然后 nginx -s reload
后面将结果贴上