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

时间:2022-09-10 13:09:04

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 文件,修改内容如下:

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

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,将会出现默认首页,页面内容如下:

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

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 文件,修改内容如下:

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

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 配置实例-配置虚拟主机

参考文档

《实战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 文件,修改内容如下:

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

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 主机的默认首页,页面内容如下:

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

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

2.1 192.168.25.199 虚拟主机的模拟

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

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

    Nginx 配置实例-配置虚拟主机
  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 相关信息

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

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

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

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 文件,修改内容如下:

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

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 主机的默认首页,页面内容如下:

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

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

3.1 192.168.25.200 虚拟主机的模拟

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

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

    Nginx 配置实例-配置虚拟主机
  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 相关信息

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

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

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

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 文件,修改内容如下:

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

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 配置实例-配置虚拟主机

参考文档

《实战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. ORA-27101: shared memory realm does not exist

    Oracle Error Tips by Burleson Consulting Oracle docs note this about ORA-27101: ORA-27101: shared me ...

  2. 【python】An Introduction to Interactive Programming in Python(week two)

    This is a note for https://class.coursera.org/interactivepython-005 In week two, I have learned: 1.e ...

  3. jellyfish K-mer analysis and genome size estimate

    http://www.cbcb.umd.edu/software/jellyfish/   http://www.genome.umd.edu/jellyfish.html https://githu ...

  4. 回溯法之求n个集合的幂集

    幂集:有一个集合A,集合A的幂集是由集合A的全部子集所组成的集合. 集合中的每一个元素仅仅有两种状态:属于幂集的元素集或不属于幂集的元素集. 集合{1,2,3},用一棵二叉树来表示. 递归函数 voi ...

  5. 那些年Android开发中遇到的坑

    使用静态变量来缓存数据时,不管是在Application类还是其他类,都要注意因应用重建而引发的问题. 使用DecorView作为PopupWindow的anchorView时,在华为P7中它是显示在 ...

  6. python requests模拟登陆正方教务管理系统,并爬取成绩

    最近模拟带账号登陆,查看了一些他人的博客,发现正方教务已经更新了,所以只能自己探索了. 登陆: 通过抓包,发现需要提交的值 需要值lt,这是个啥,其实他在访问登陆页面时就产生了 session=req ...

  7. iOS 字典实现原理

    在目前的开发中,NSDictionary是经常被使用,不过很少人会研究字典NSDictionary底层的实现,下面我们来一起看一下NSDictionary的实现原理. 一.字典原理 字典通过使用- ( ...

  8. WebBrowser Cookie

    WebBrowser的Cookie操作 .在WebBrowser中获取Cookie CookieContainer myCookieContainer = new CookieContainer(); ...

  9. options.html:1 Refused to load the script 'xxxx' because it violates the following Content Security Policy directive: "script-src 'self' blob: filesystem: chrome-extension-resource:".

    /********************************************************************************* * options.html:1 ...

  10. 【BZOJ3772】精神污染 DFS序+主席树

    [BZOJ3772]精神污染 Description 兵库县位于日本列岛的*位置,北临日本海,南面濑户内海直通太平洋,*部位是森林和山地,与拥有关西机场的大阪府比邻而居,是关西地区面积最大的县,是 ...