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. 一次ssh不能登陆问题

    看提示应该是进程数满了 ps -eLf | wc -l  查看当前进程数 [root@qc-app-16-63 containers]# ps -eLf | wc -l2625 查看允许最大进程数 s ...

  2. 使用var和不使用var的区别(全局变量/局部变量)

    https://blog.csdn.net/czh500/article/details/80429133

  3. 让vim显示空格,tab字符,及vim多行注释

    1.显示 TAB 键 文件中有 TAB 键的时候,你是看不见的.要把它显示出来: :set list 现在 TAB 键显示为 ^I,而 $显示在每行的结尾,以便你能找到可能会被你忽略的空白字符在哪里 ...

  4. POJ1042 贪心钓鱼

    题意:       你有H小时(H*12个单位)时间去用,有n个鱼池在一条直线上,一开始你在1的位置,可以选择在某些鱼池上钓鱼,但是如果持续在一个鱼池上钓鱼钓鱼速度回成线性减少,初始每个时间单位钓fi ...

  5. 9.PHP文件处理

    PHP文件系统 (当成是扩展C++来看就行了,几乎一样): 读取整个文件readfile() .file(). file_get_contents() <?php    readfile('fi ...

  6. Ext.MessageBox.alert()弹出对话框详解

    Ext.MessageBox是一个工具类,他继承自Obiect对象,用来生成各种风格的信息提示对话框,Ext.Msg是该类的别名,使用Ext.MessageBox和用Ext.Msg效果是一样的,而后者 ...

  7. XCTF-unfinish

    unfinish 之前做过这个题,这是之前写的WP:链接

  8. <JVM从入门到精通>导航

    笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) 同步更新:https://gitee.com/vectorx/NOTE_JVM https://codechina.cs ...

  9. linux 查看运行java所在目录

    通过ps及top命令查看进程信息时,只能查到相对路径,查不到的进程的详细信息 需要查看pos_service.jar的绝对路径(在哪里目录下)  使用:ll /proc/PID Linux在启动一个进 ...

  10. LeetCode 26. 删除有序数组中的重复项

    双指针法 分析: 设置两个指针:p1,p2,初始p1指向数组的第一个元素,p2指向第二个元素 1)如果p1的值 == p2的值,就让p2后移一位 2)如果p1的值 != p2的值,修改p1的下一个元素 ...