nginx虚拟主机配置
nginx 虚拟主机配置是指在一台服务器上划分出多个虚拟主机,每个虚拟主机都具有独立的域名和完整的 internet 服务器功能。虚拟主机可以基于 IP 地址或域名来实现,本文将详细介绍基于 IP 地址和域名的虚拟主机配置。
一、虚拟主机的概念
虚拟主机是在网络服务器上划分出一定的磁盘空间供用户放置站点、应用组件等,提供必要的站点功能、数据存放和传输功能。所谓虚拟主机,也叫“网站空间”,就是把一台运行在互联网上的服务器划分成多个“虚拟”的服务器,每一个虚拟主机都具有独立的域名和完整的 internet 服务器(支持 WWW、FTP、E-mail 等)功能,从用户角度来看,每台虚拟主机和一台独立的服务器完全相同,在 IP 地址日益紧张的今天,基于域名的虚拟主机要比基于 IP 的虚拟主机使用的更加广泛。
二、配置基于 IP 的虚拟主机
要配置基于 IP 的虚拟主机,需要在服务器上配置多个 IP 地址,每个 IP 地址对应一个虚拟主机。下面是一个简单的示例:
1. 在 eth0 网卡上配置两个 IP 别名:192.168.0.41 和 192.168.0.42,加入/etc/rc.local,让系统开机后运行:
`vi /etc/rc.local`
`sbin/ifconfig eth0:1 192.168.0.41 broadcast 192.168.0.255 netmask 255.255.255.0 up`
`sbin/route add -host 192.168.0.41 dev eth0:1`
`sbin/ifconfig eth0:2 192.168.0.42 broadcast 192.168.0.255 netmask 255.255.255.0 up`
`sbin/route add -host 192.168.0.42 dev eth0:2`
2. Nginx 配置文件如下,配置两个 IP 地址支持静态文件的虚拟主机:
`worker_processes 1;`
`events { worker_connections 1024;}`
`http { include mime.types; default_type application/octet-stream;`
` sendfile on; keepalive_timeout 65;`
` server { listen 192.168.0.41:80; server_name 192.168.0.41;`
` location / { index index.html index.htm; root /usr/local/htdocs/v1; #html 网页存放目录 } }`
` server { listen 192.168.0.42:80; server_name 192.168.0.42;`
` location / { index index.html index.htm; root /usr/local/htdocs/v2; #html 网页存放目录 } }`
三、配置基于域名的虚拟主机
要配置基于域名的虚拟主机,需要在/etc/hosts 文件中添加域名对应的 IP 地址。下面是一个简单的示例:
1. 更改/etc/hosts 文件,在文件末尾处添加以下两行:
`192.168.0.5 www.abc.com`
`192.168.0.5 www.xiaoi.com`
2. Nginx 配置文件如下,配置两个域名支持静态文件的虚拟主机:
`worker_processes 1;`
`events { worker_connections 1024;}`
`http { include mime.types; default_type application/octet-stream;`
` sendfile on; keepalive_timeout 65;`
` server { listen 80; server_name www.abc.com;`
` location / { index index.html index.htm; root /usr/local/htdocs/v1; #html 网页存放目录 } }`
` server { listen 80; server_name www.xiaoi.com;`
` location / { index index.html index.htm; root /usr/local/htdocs/v2; #html 网页存放目录 } }`
通过上述配置,我们可以实现基于 IP 地址和域名的虚拟主机配置,满足不同的应用场景需求。
Nginx 中有三种常见的虚拟主机配置方式:
1. 基于域名的虚拟主机: 通过配置不同的 server 块来处理不同域名的请求。
2. 基于 IP 地址的虚拟主机: 通过配置不同的 server 块来处理不同 IP 地址的请求。
3. 基于端口号的虚拟主机: 通过配置不同的 server 块来处理不同端口号的请求。