Nginx 配置实例-配置虚拟主机
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 别名来完成的。
- 使用 ifconfig 命令查看当前主机的网卡和 IP

- 在 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
- 验证 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 别名来完成的。
- 使用 ifconfig 命令查看当前主机的网卡和 IP

- 在 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
- 验证 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 配置实例-配置虚拟主机的更多相关文章
- nginx配置多个虚拟主机vhost
在nginx下配置虚拟主机vhost非常方便.主要在nginx的配置文件nginx.conf中添加一个server即可 比如我想配置两个虚拟主机,通过域名linux.com和linux2.com访问, ...
- Nginx入门讲解——初步认识了解nginx.conf配置文件以及配置多个虚拟主机
本文引自网络进攻学习之用https://blog.csdn.net/weixin_38111957/article/details/81080539 一. 引言上节文章讲述了如何用信号控制Nginx服 ...
- nginx配置多个虚拟主机(mac)
1 . 安装 通过homebrew安装nginx,默认安装在:/usr/local/Cellar/nginx/版本号.配置文件在路径:/usr/local/etc/nginx ,默认配置文件ngin ...
- Nginx 配置实例-配置高可用
Nginx 配置实例-配置高可用 1. 实现效果 2. 两台机器 nginx 的安装 2.1 192.168.25.120 中 nginx 的安装 2.1.1 安装 pcre 依赖 2.1.2 安装其 ...
- centos LAMP第二部分apache配置 下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转 配置apache的访问日志 配置静态文件缓存 配置防盗链 访问控制 apache rewrite 配置开机启动apache tcpdump 第二十节课
centos LAMP第二部分apache配置 下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转 配置apache的访问日志 配置静态文件缓存 配置防盗链 ...
- Nginx 配置实例-配置负载均衡
Nginx 配置实例-配置负载均衡 0. 实例效果 1. 两个 tomcat 的安装(可选) 1.1 tomcat8081 的安装 1.1.1 tomcat8081 安装包的装备 1.1.2 tomc ...
- php配置虚拟主机的配置步骤(hosts、httpd.conf、vhosts.conf)1.配置本地的dns文件2.配置apache的主配置文件3.配置Apache的虚拟主机
1.域名解析(DNS) 找到C:\Windows\System32\drivers\etc目录下的hosts文件,在里面进行添加对应的内容
- Httpd服务入门知识-Httpd服务常见配置案例之虚拟主机
Httpd服务入门知识-Httpd服务常见配置案例之虚拟主机 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.虚拟主机实现方案 1>.Apache httpd 有三种实现虚 ...
- 利用主机域名配置Apache的虚拟主机功能
利用主机域名配置Apache的虚拟主机功能,可以减轻服务器为每一个网站分配IP地址的压力.而且根据不同的主机域名可以输出不同的网页内容.要实现此项功能,可以通过修改/etc/host文件来强制定义IP ...
随机推荐
- java面试一日一题:讲下mysql中的undolog
问题:请讲下mysql中undo log的作用 分析:mysql中有很多日志,例,bin log undo log redo log,要弄清楚这些日志的作用,就要了解这些日志出现的背景及要解决的问题: ...
- CVE-2013-3346:十全九美的 Adobe Reader ToolButton UAF 漏洞
0x01 "Epic Turla" 网络间谍行动 在 2014 年 8 月,被誉为 "世界十大最危险的网络攻击行动" 之一的 "Epic Turla& ...
- coding push 上传文件
git config --global user.name "lyshark" &git config --global user.email "11815068 ...
- Intel汇编语言程序设计学习-第四章 数据传送、寻址和算术运算-下
4.3 和数据相关的操作符和伪指令 操作符和伪指令并非机器可执行的指令,相反,它们是由汇编器进行解释的.开发者可以使用一系列的MASM操作符或伪指令获取数据的地址以及大小等特征信息: OFFSET操 ...
- PHP版本差异备忘录
5.2版本 默认开启了GPC [之后的版本默认不开启] 在声明为static方法时,无需在方法前面加入static关键 [以后的版本强制增加static关键字]
- ColyseusJS 轻量级多人游戏服务器开发框架 - 中文手册(中)
快速上手多人游戏服务器开发.后续会基于 Google Agones,更新相关 K8S 运维.大规模快速扩展专用游戏服务器的文章.拥抱️原生 Cloud-Native! 系列 ColyseusJS 轻量 ...
- 用PS给视频磨皮美颜
无意间找到的,但是一个10分钟的视频渲染了我一天的时间,但是效果是不错的 参考视频链接 https://www.bilibili.com/video/BV1b7411m74e 视频中涉及的添加插件链接 ...
- 【敏杰开发】Beta阶段项目展示
[敏杰开发]Beta阶段项目展示 项目相关地址汇总 线上地址:http://roadmap.imcoming.top 前端仓库:https://github.com/MinJieDev/Roadmap ...
- DVWA--SQL Injection
sql注入是危害比较大的一种漏洞,登录数据库可以进行文件上传,敏感信息获取等等. Low 先来看一下源码 <?php if( isset( $_REQUEST[ 'Submit' ] ) ) { ...
- JDBC核心技术(获取数据库链接、数据库事务、数据库链接池)
@ 目录 前言 数据的持久化 Java数据存储技术 JDBC介绍 JDBC体系结构 获取数据库链接 Driver接口 加载注册JDBC驱动 获取数据库链接 数据库链接方式(实例) 方式一:代码中显示出 ...