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 ...
随机推荐
- 一次ssh不能登陆问题
看提示应该是进程数满了 ps -eLf | wc -l 查看当前进程数 [root@qc-app-16-63 containers]# ps -eLf | wc -l2625 查看允许最大进程数 s ...
- 使用var和不使用var的区别(全局变量/局部变量)
https://blog.csdn.net/czh500/article/details/80429133
- 让vim显示空格,tab字符,及vim多行注释
1.显示 TAB 键 文件中有 TAB 键的时候,你是看不见的.要把它显示出来: :set list 现在 TAB 键显示为 ^I,而 $显示在每行的结尾,以便你能找到可能会被你忽略的空白字符在哪里 ...
- POJ1042 贪心钓鱼
题意: 你有H小时(H*12个单位)时间去用,有n个鱼池在一条直线上,一开始你在1的位置,可以选择在某些鱼池上钓鱼,但是如果持续在一个鱼池上钓鱼钓鱼速度回成线性减少,初始每个时间单位钓fi ...
- 9.PHP文件处理
PHP文件系统 (当成是扩展C++来看就行了,几乎一样): 读取整个文件readfile() .file(). file_get_contents() <?php readfile('fi ...
- Ext.MessageBox.alert()弹出对话框详解
Ext.MessageBox是一个工具类,他继承自Obiect对象,用来生成各种风格的信息提示对话框,Ext.Msg是该类的别名,使用Ext.MessageBox和用Ext.Msg效果是一样的,而后者 ...
- XCTF-unfinish
unfinish 之前做过这个题,这是之前写的WP:链接
- <JVM从入门到精通>导航
笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) 同步更新:https://gitee.com/vectorx/NOTE_JVM https://codechina.cs ...
- linux 查看运行java所在目录
通过ps及top命令查看进程信息时,只能查到相对路径,查不到的进程的详细信息 需要查看pos_service.jar的绝对路径(在哪里目录下) 使用:ll /proc/PID Linux在启动一个进 ...
- LeetCode 26. 删除有序数组中的重复项
双指针法 分析: 设置两个指针:p1,p2,初始p1指向数组的第一个元素,p2指向第二个元素 1)如果p1的值 == p2的值,就让p2后移一位 2)如果p1的值 != p2的值,修改p1的下一个元素 ...