Nginx 配置实例-配置虚拟主机

配置基于域名的虚拟主机

以下步骤将配置三个域名不同的虚拟主机,各虚拟主机规划如下:

  • 域名为 aaa.domain.com 的虚拟主机,处理所有对域名 aaa.domain.com 的访问
  • 域名为 bbb.otherdomain.com 的虚拟主机,处理所有对域名 bbb.otherdomain.com 的访问

1. 配置域名为 aaa.domain.com 的虚拟主机

1.1 nginx 中虚拟主机的配置

修改 nginx 的配置文件 nginx.conf,将 http 模块内容修改如下:

http {
# 虚拟主机 aaa.domain.com
server {
# 监听的 IP 和端口
listen 80;
# 虚拟主机名
server_name aaa.domain.com;
# 日志
access_log /var/log/nginx/domain-aaa-access.log combined;
location / {
# 首页
index index.html index.htm;
# HTML 网页文件的根目录
root /html/nginx/domain-aaa;
}
}
}
 

1.2 相关目录及文件的创建

在上面的配置文件中,配置了两个相关的目录,一个是 access_log 配置的日志目录,另一个是 root 配置的网页文件的根目录,分别创建如下两个目录:

# 创建 nginx.conf 配置文件中 access_log 配置的日志目录
cd /var/log/
mkdir nginx # 创建 nginx.conf 配置文件中 root 配置的网页文件的根目录
mkdir -vp /html/nginx/domain-aaa
 

创建完成 /html/nginx/domain-aaa 目录后,需向该目录添加 html 文件,充当默认首页

# 拷贝 nginx 的默认首页到 domain-aaa 目录,充当 aaa.domain.com 主机的默认首页
cp -vr /usr/local/nginx/html/* /html/nginx/domain-aaa
 

修改 index.html 文件,修改内容如下:

1.3 验证域名为 aaa.domain.com 的虚拟主机配置是否成功

在修改 nginx 的配置文件之后,需要进行重载:

# 验证 nginx 的配置文件是否正确
/usr/local/nginx/sbin/nginx -t # 重启 nginx(只有一个 server 时需要使用重启)
/usr/local/nginx/sbin/nginx -s stop
/usr/local/nginx/sbin/nginx # 重载 nginx(多于一个 server 时可以使用重载)
/usr/local/nginx/sbin/nginx -s reload
 

要想通过域名正确访问 aaa.domain.com,还需配置域名和IP的映射关系,修改本机的 hosts 文件,添加如下内容:

192.168.25.101 aaa.domain.com
 

浏览器访问 aaa.domain.com,将会出现默认首页,页面内容如下:

2. 配置域名为 bbb.otherdomain.com 的虚拟主机

2.1 nginx 中虚拟主机的配置

修改 nginx 的配置文件 nginx.conf,将 http 模块内容修改如下:

http {
# 虚拟主机 aaa.domain.com
server {
# 监听的 IP 和端口
listen 80;
# 虚拟主机名
server_name aaa.domain.com;
# 日志
access_log /var/log/nginx/domain-aaa-access.log combined;
location / {
# 首页
index index.html index.htm;
# HTML 网页文件的根目录
root /html/nginx/domain-aaa;
}
} # 虚拟主机 bbb.otherdomain.com
server {
# 监听的 IP 和端口
listen 80;
# 虚拟主机名
server_name bbb.otherdomain.com;
# 日志
access_log /var/log/nginx/domain-bbb-access.log combined;
location / {
# 首页
index index.html index.htm;
# HTML 网页文件的根目录
root /html/nginx/domain-bbb;
}
}
}
 

2.2 相关目录及文件的创建

在上面的配置文件中,配置了两个相关的目录,一个是 access_log 配置的日志目录,另一个是 root 配置的网页文件的根目录,分别创建如下两个目录:

# 创建 nginx.conf 配置文件中 access_log 配置的日志目录
cd /var/log/
mkdir nginx # 创建 nginx.conf 配置文件中 root 配置的网页文件的根目录
mkdir -vp /html/nginx/domain-bbb
 

创建完成 /html/nginx/domain-bbb 目录后,需向该目录添加 html 文件,充当默认首页

# 拷贝 nginx 的默认首页到 domain-bbb 目录,充当 bbb.otherdomain.com 主机的默认首页
cp -vr /usr/local/nginx/html/* /html/nginx/domain-bbb
 

修改 index.html 文件,修改内容如下:

2.3 验证域名为 bbb.otherdomain.com 的虚拟主机配置是否成功

在修改 nginx 的配置文件之后,需要进行重载:

# 验证 nginx 的配置文件是否正确
/usr/local/nginx/sbin/nginx -t # 重启 nginx(只有一个 server 时需要使用重启)
/usr/local/nginx/sbin/nginx -s stop
/usr/local/nginx/sbin/nginx # 重载 nginx(多于一个 server 时可以使用重载)
/usr/local/nginx/sbin/nginx -s reload
 

要想通过域名正确访问 aaa.domain.com,还需配置域名和IP的映射关系,修改本机的 hosts 文件,添加如下内容:

192.168.25.101 bbb.otherdomain.com
 

浏览器访问 bbb.otherdomain.com,将会出现默认首页,页面内容如下:

参考文档

《实战Nginx-取代Apache的高性能Web服务器》3.2.3 配置基于域名的虚拟主机

配置基于 IP 的虚拟主机

以下步骤将配置三个 IP 不同的虚拟主机,各虚拟主机规划如下:

  • IP 为 192.168.25.101 的虚拟主机——真实主机
  • IP 为 192.168.25.199 的虚拟主机——通过为网卡添加 IP 别名创建的虚拟主机
  • IP 为 192.169.25.200 的虚拟主机——通过为网卡添加 IP 别名创建的虚拟主机

1. 配置 IP 为 192.168.25.101 的虚拟主机

1.1 nginx 中虚拟主机的配置

修改 nginx 的配置文件 nginx.conf,将 http 模块内容修改如下:

http {
# 虚拟主机 192.168.25.101
server {
# 监听的 IP 和端口
listen 192.168.25.101:80;
# 虚拟主机名
server_name 192.168.25.101;
# 日志
access_log /var/log/nginx/101-access.log combined;
location / {
# 首页
index index.html index.htm;
# HTML 网页文件的根目录
root /html/nginx/101;
}
}
}
 

1.2 相关目录及文件的创建

在上面的配置文件中,配置了两个相关的目录,一个是 access_log 配置的日志目录,另一个是 root 配置的网页文件的根目录,分别创建如下两个目录:

# 创建 nginx.conf 配置文件中 access_log 配置的日志目录
cd /var/log/
mkdir nginx # 创建 nginx.conf 配置文件中 root 配置的网页文件的根目录
mkdir -vp /html/nginx/101
 

创建完成 /html/nginx/101 目录后,需向该目录添加 html 文件,充当默认首页

# 拷贝 nginx 的默认首页到 101 目录,充当 192.168.25.101 主机的默认首页
cp -vr /usr/local/nginx/html/* /html/nginx/101
 

修改 index.html 文件,修改内容如下:

1.3 验证 192.168.25.101 的虚拟主机配置是否成功

在修改 nginx 的配置文件之后,需要进行重载:

# 验证 nginx 的配置文件是否正确
/usr/local/nginx/sbin/nginx -t # 重启 nginx(只有一个 server 时需要使用重启)
/usr/local/nginx/sbin/nginx -s stop
/usr/local/nginx/sbin/nginx # 重载 nginx(多于一个 server 时可以使用重载)
/usr/local/nginx/sbin/nginx -s reload
 

浏览器访问 192.168.25.101,将会出现 101 主机的默认首页,页面内容如下:

2. 配置 IP 为 192.168.25.199 的虚拟主机

2.1 192.168.25.199 虚拟主机的模拟

这里虚拟主机的模拟,主要是通过给网卡取 IP 别名来完成的。

  1. 使用 ifconfig 命令查看当前主机的网卡和 IP

  2. 在 eth0 网卡上添加 192.168.25.199 的 IP 别名
/sbin/ifconfig eth0:1 192.168.25.199 broadcast 192.168.25.255 netmask 255.255.255.0 up
/sbin/route add -host 192.168.25.199 dev eth0:1
 
  1. 验证 eth0 的 IP 别名 192.168.25.199 添加是否成功

    使用 ifconifg 命令查看 IP 相关信息



    使用 ping 命令查看 192.168.25.199 的 IP 是否可以连接

2.2 nginx 中虚拟主机的配置

修改 nginx 的配置文件 nginx.conf,修改 http 模块内容如下:

http {
# 虚拟主机 192.168.25.101
server {
# 监听的 IP 和端口
listen 192.168.25.101:80;
# 虚拟主机名
server_name 192.168.25.101;
# 日志
access_log /var/log/nginx/101-access.log combined;
location / {
# 首页
index index.html index.htm;
# HTML 网页文件的根目录
root /html/nginx/101;
}
} # 虚拟主机 192.168.25.199
server {
# 监听的 IP 和端口
listen 192.168.25.199:80;
# 虚拟主机名
server_name 192.168.25.199;
# 日志
access_log /var/log/nginx/199-access.log combined;
location / {
# 首页
index index.html index.htm;
# HTML 网页文件的根目录
root /html/nginx/199;
}
}
}
 

2.3 相关目录及文件的创建

在上面的配置文件中,配置了两个相关的目录,一个是 access_log 配置的日志目录,另一个是 root 配置的网页文件的根目录,分别创建如下两个目录:

# 创建 nginx.conf 配置文件中 access_log 配置的日志目录
cd /var/log/
mkdir nginx # 创建 nginx.conf 配置文件中 root 配置的网页文件的根目录
mkdir -vp /html/nginx/199
 

创建完成 /html/nginx/199 目录后,需向该目录添加 html 文件,充当默认首页

# 拷贝 nginx 的默认首页到 199 目录,充当 192.168.25.199 主机的默认首页
cp -vr /usr/local/nginx/html/* /html/nginx/199
 

修改 index.html 文件,修改内容如下:

2.4 验证 192.168.25.199 的虚拟主机配置是否成功

在修改 nginx 的配置文件之后,需要进行重载:

# 验证 nginx 的配置文件是否正确
/usr/local/nginx/sbin/nginx -t # 重启 nginx(只有一个 server 时需要使用重启)
/usr/local/nginx/sbin/nginx -s stop
/usr/local/nginx/sbin/nginx # 重载 nginx(多于一个 server 时可以使用重载)
/usr/local/nginx/sbin/nginx -s reload
 

浏览器访问 192.168.25.199,将会出现 199 主机的默认首页,页面内容如下:

3. 配置 IP 为 192.168.25.200 的虚拟主机

3.1 192.168.25.200 虚拟主机的模拟

这里虚拟主机的模拟,主要是通过给网卡取 IP 别名来完成的。

  1. 使用 ifconfig 命令查看当前主机的网卡和 IP

  2. 在 eth0 网卡上添加 192.168.25.200 的 IP 别名
/sbin/ifconfig eth0:2 192.168.25.200 broadcast 192.168.25.255 netmask 255.255.255.0 up
/sbin/route add -host 192.168.25.200 dev eth0:2
 
  1. 验证 eth0 的 IP 别名 192.168.25.200 添加是否成功

    使用 ifconifg 命令查看 IP 相关信息



    使用 ping 命令查看 192.168.25.199 的 IP 是否可以连接

3.2 nginx 中虚拟主机的配置

修改 nginx 的配置文件 nginx.conf,修改 http 模块内容如下:

http {
# 虚拟主机 192.168.25.101
server {
# 监听的 IP 和端口
listen 192.168.25.101:80;
# 虚拟主机名
server_name 192.168.25.101;
# 日志
access_log /var/log/nginx/101-access.log combined;
location / {
# 首页
index index.html index.htm;
# HTML 网页文件的根目录
root /html/nginx/101;
}
} # 虚拟主机 192.168.25.199
server {
# 监听的 IP 和端口
listen 192.168.25.199:80;
# 虚拟主机名
server_name 192.168.25.199;
# 日志
access_log /var/log/nginx/199-access.log combined;
location / {
# 首页
index index.html index.htm;
# HTML 网页文件的根目录
root /html/nginx/199;
}
} # 虚拟主机 192.168.25.200
server {
# 监听的 IP 和端口
listen 192.168.25.200:80;
# 虚拟主机名
server_name 192.168.25.200;
# 日志
access_log /var/log/nginx/200-access.log combined;
location / {
# 首页
index index.html index.htm;
# HTML 网页文件的根目录
root /html/nginx/200;
}
} }
 

3.3 相关目录及文件的创建

在上面的配置文件中,配置了两个相关的目录,一个是 access_log 配置的日志目录,另一个是 root 配置的网页文件的根目录,分别创建如下两个目录:

# 创建 nginx.conf 配置文件中 access_log 配置的日志目录
cd /var/log/
mkdir nginx # 创建 nginx.conf 配置文件中 root 配置的网页文件的根目录
mkdir -vp /html/nginx/200
 

创建完成 /html/nginx/200 目录后,需向该目录添加 html 文件,充当默认首页

# 拷贝 nginx 的默认首页到 200 目录,充当 192.168.25.200 主机的默认首页
cp -vr /usr/local/nginx/html/* /html/nginx/200
 

修改 index.html 文件,修改内容如下:

3.4 验证 192.168.25.200 的虚拟主机配置是否成功

在修改 nginx 的配置文件之后,需要进行重载:

# 验证 nginx 的配置文件是否正确
/usr/local/nginx/sbin/nginx -t # 重启 nginx(只有一个 server 时需要使用重启)
/usr/local/nginx/sbin/nginx -s stop
/usr/local/nginx/sbin/nginx # 重载 nginx(多于一个 server 时可以使用重载)
/usr/local/nginx/sbin/nginx -s reload
 

浏览器访问 192.168.25.199,将会出现 199 主机的默认首页,页面内容如下:

参考文档

《实战Nginx-取代Apache的高性能Web服务器》3.2.2 配置基于IP的虚拟主机

 

Nginx 配置实例-配置虚拟主机的更多相关文章

  1. nginx配置多个虚拟主机vhost

    在nginx下配置虚拟主机vhost非常方便.主要在nginx的配置文件nginx.conf中添加一个server即可 比如我想配置两个虚拟主机,通过域名linux.com和linux2.com访问, ...

  2. Nginx入门讲解——初步认识了解nginx.conf配置文件以及配置多个虚拟主机

    本文引自网络进攻学习之用https://blog.csdn.net/weixin_38111957/article/details/81080539 一. 引言上节文章讲述了如何用信号控制Nginx服 ...

  3. nginx配置多个虚拟主机(mac)

    1 . 安装  通过homebrew安装nginx,默认安装在:/usr/local/Cellar/nginx/版本号.配置文件在路径:/usr/local/etc/nginx ,默认配置文件ngin ...

  4. Nginx 配置实例-配置高可用

    Nginx 配置实例-配置高可用 1. 实现效果 2. 两台机器 nginx 的安装 2.1 192.168.25.120 中 nginx 的安装 2.1.1 安装 pcre 依赖 2.1.2 安装其 ...

  5. centos LAMP第二部分apache配置 下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转 配置apache的访问日志 配置静态文件缓存 配置防盗链 访问控制 apache rewrite 配置开机启动apache tcpdump 第二十节课

    centos    LAMP第二部分apache配置  下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转  配置apache的访问日志  配置静态文件缓存  配置防盗链 ...

  6. Nginx 配置实例-配置负载均衡

    Nginx 配置实例-配置负载均衡 0. 实例效果 1. 两个 tomcat 的安装(可选) 1.1 tomcat8081 的安装 1.1.1 tomcat8081 安装包的装备 1.1.2 tomc ...

  7. php配置虚拟主机的配置步骤(hosts、httpd.conf、vhosts.conf)1.配置本地的dns文件2.配置apache的主配置文件3.配置Apache的虚拟主机

    1.域名解析(DNS) 找到C:\Windows\System32\drivers\etc目录下的hosts文件,在里面进行添加对应的内容

  8. Httpd服务入门知识-Httpd服务常见配置案例之虚拟主机

    Httpd服务入门知识-Httpd服务常见配置案例之虚拟主机 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.虚拟主机实现方案 1>.Apache httpd 有三种实现虚 ...

  9. 利用主机域名配置Apache的虚拟主机功能

    利用主机域名配置Apache的虚拟主机功能,可以减轻服务器为每一个网站分配IP地址的压力.而且根据不同的主机域名可以输出不同的网页内容.要实现此项功能,可以通过修改/etc/host文件来强制定义IP ...

随机推荐

  1. BLE广播信道空中包详解

    广播信道空中包 在学习BLE的过程中,对于广播信道的空中包有许多混淆的地方,包括各个空中包的用途,帧格式等.现在想把他们做一个总结和归纳. BLE广播信道中的空中包分为有以下几种: 可连接非定向广播 ...

  2. 1030 Travel Plan

    A traveler's map gives the distances between cities along the highways, together with the cost of ea ...

  3. 生成https证书脚本

    [root@yc1 ~]# cat yc_https.sh #!/bin/bash hostname=192.168.23.140 rm -rf /etc/pki/CA &>/dev/n ...

  4. Heap Spray原理浅析

    Heap Spray定义基本描述 Heap Spray并没有一个官方的正式定义,毕竟这是漏洞攻击技术的一部分.但是我们可以根据它的特点自己来简单总结一下.Heap Spray是在shellcode的前 ...

  5. hdu2594 简单KMP

    题意:      给你两个串,问你s1的前缀和s2的后缀最长公共部分是多少. 思路:      根据KMP的匹配形式,我们求出s1的next,然后用s1去匹配s2,输出当匹配到s2的最后一个的时候的匹 ...

  6. hdu4845 状态压缩BFS

    题意:      给一个n*m的矩阵,从11,走到nm,格子和格子之间可能有墙,也可能有门,有的格子上面有钥匙,相应的钥匙开相应的们,捡钥匙和开门都不需要时间,问你最少多少部能走到nm. 思路:   ...

  7. Python第三章-字符串

    第三章  字符串 3.1 基本字符串操作 Python的字符串和元组差不多,是不可以进行改变的,如果想改变值,可以尝试list序列化之后在进行修改. {    website = 'http://ww ...

  8. Win64 驱动内核编程-3.内核里使用内存

    内核里使用内存 内存使用,无非就是申请.复制.设置.释放.在 C 语言里,它们对应的函数是:malloc.memcpy.memset.free:在内核编程里,他们分别对应 ExAllocatePool ...

  9. Windows核心编程 第六章 线程基础知识 (上)

    第6章 线程的基础知识 理解线程是非常关键的,因为每个进程至少需要一个线程.本章将更加详细地介绍线程的知识.尤其是要讲述进程与线程之间存在多大的差别,它们各自具有什么作用.还要介绍系统如何使用线程内核 ...

  10. android之布局优化

    android中提供了<include />.<merge />.<ViewStub />三种优化布局. 1.<include /> <inclu ...