在真实的服务器环境,为了充分利用服务器资源,一台nginx web服务器会同时配置N个虚拟主机,这样可以充分利用服务器的资源,方便管理员的统一管理

配置nginx虚拟主机首先肯定要先部署咱们的nginx,具体nginx部署安装请移步 nginx部署,配置nginx虚拟主机需要大家了解nginx配置文件以及nginx的各个目录,若需要请移步 nginx目录结构与配置文件详解

配置nginx虚拟主机有三种方法:基于ip地址的虚拟主机、基于域名的虚拟主机以及基于端口的虚拟主机,下面为大家逐一讲解

基于域名的虚拟主机

基于域名的虚拟主机原理:相同IP地址,相同端口、不同的域名。也就是说多个虚拟主机之间共用一个ip地址以及一个端口(80),区分各个主机之间使用不同的域名,当然访问的时候也就只能使用域名进行访问了,基于域名的虚拟主机是最常用的方式
配置:

http{
......省略其他代码 #第一台虚拟主机
server {
listen 80;
server_name a.jkyst.xyz; #这里域名一定不要重复
access_log logs/a.access.log; #日志需求可以根据自己的要求去做,如果觉得日志无所谓分不分开大可以放到一起
location{
root html/a; #这里是网站的根目录,注意为了测试一定要分开,里面写上不同的html
index index.html index.htm;
}
......这里省略其他代码
} #第二台虚拟主机
server{
listen 80;
server_name b.jkyst.xyz;
access_log logs/b.access.log;
location{
root html/b;
index index.html index.htm;
}
......这里省略其他代码
} #第三台虚拟主机
server{
listen 80;
server_name c.jkyst.xyz;
access_log logs/c.access.log;
location{
root html/c;
index index.html index.htm;
}
}
}

基于端口的虚拟主机

基于端口的虚拟主机原理:相同IP地址,相同域名,不同的端口;也就是说多个虚拟主机之间拥有相同的IP地址和域名,使用端口不同的方式区分不同虚拟主机,当然访问的时候就不可以使用默认的端口(80)去访问了
配置

http{
......省略其他代码
#第一台虚拟主机
server {
listen 8000;
server_name www.jkyst.xyz;
access_log logs/a.access.log;
location{
root html/a;
index index.html index.htm;
}
......省略其他代码
}
#第二台虚拟主机
server{
listen 8001;
server_name www.jkyst.xyz;
access_log logs/b.access.log;
location{
root html/b;
index index.html index.htm;
}
......省略其他代码
}
#第三台虚拟主机
server{
listen 8002;
server_name www.jkyst.xyz;
access_log logs/c.access.log;
location{
root html/c;
index index.html index.htm;
}
......省略其他代码
}
}

基于IP的虚拟主机

基于IP地址的虚拟主机原理:相同端口,相同域名,不同的IP地址;也就是说多个虚拟主机之间拥有相同的端口和域名,使用IP地址不同的方式区分不同虚拟主机,当然访问的时候就需要使用不同IP或者域名去访问了,绑定域名时也就需要不同域名绑定不同ip地址,但不可一个域名绑定多个ip
配置

http{
......省略其他代码
#第一台虚拟主机
server {
listen IP地址:80;
server_name a.jkyst.xy或者ip地址;
access_log logs/a.access.log;
location{
root html/a;
index index.html index.htm;
}
......省略其他代码
}
#第二台虚拟主机
server{
listen IP地址:80;
server_name b.jkyst.xyz或者IP地址;
access_log logs/b.access.log;
location{
root html/b;
index index.html index.htm;
}
......省略其他代码
}
#第三台虚拟主机
server{
listen IP地址:80;
server_name c.jkyst.xyz或者IP地址;
access_log logs/c.access.log;
location{
root html/c;
index index.html index.htm;
}
......省略其他代码
}
}

实战

我这里为大家演示一种虚拟主机的实现,因为基于域名的虚拟主机比较常见这里就为大家演示这种虚拟主机

环境介绍

操作系统版本:

root@jia:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 19.10
Release: 19.10
Codename: eoan
root@jia:~# cat /proc/version
Linux version 5.3.0-18-generic (buildd@lcy01-amd64-027) (gcc version 9.2.1 20190909 (Ubuntu 9.2.1-8ubuntu1)) #19-Ubuntu SMP Tue Oct 8 20:14:06 UTC 2019

nginx版本:

root@jia:~# nginx -v
nginx version: nginx/1.16.1 (Ubuntu)

配置nginx.conf

配置文件位置:/etc/nginx/conf.d/*.conf
nginx安装方式不同位置不同,具体请查看自己的配置文件位置
下面是配置文件内容:

root@jia:/var/www/html# cat /etc/nginx/conf.d/default.conf
server {
listen 80;
server_name a.jkyst.xyz; location / {
root /var/www/html/a;
index index.html index.htm;
} }
server {
listen 80;
server_name b.jkyst.xyz; location / {
root /var/www/html/b;
index index.html index.htm;
} }
server {
listen 80;
server_name c.jkyst.xyz; location / {
root /var/www/html/c;
index index.html index.htm;
}

记住修改配置文件后一定要重新启动nginx

root@jia:~# systemctl restart nginx

创建主页文件

首先创建存放主页html文件的目录

root@jia:~# cd /var/www/html/
root@jia:/var/www/html# mkdir a b c
#生成主页文件
root@jia:/var/www/html# echo a.jkyst.xyz > a/index.html
root@jia:/var/www/html# echo b.jkyst.xyz > b/index.html
root@jia:/var/www/html# echo c.jkyst.xyz > c/index.html

修改host文件

这里修改hosts文件需要注意一下,在那个PC上面验证就在那个PC上面修改host文件
windows主机hosts文件路径:C:\Windows\System32\drivers\etc
linux版本hosts文件路径:/etc/
需要写入的内容

127.0.0.1  a.jkyst.xyz 		//127.0.0.1是nginx服务器的IP地址,我这里使用的是同一台PC
127.0.0.1 b.jkyst.xyz
127.0.0.1 c.jkyst.xyz

测试

root@jia:~# curl a.jkyst.xyz
a.jkyst.xyz
root@jia:~# curl b.jkyst.xyz
b.jkyst.xyz
root@jia:~# curl c.jkyst.xyz
c.jkyst.xyz

OK发现访问的都是我想要得到的域名,证明基于域名的虚拟主机配置成功

一起来看看大佬是怎样配置nginx虚拟主机的更多相关文章

  1. 配置Nginx虚拟主机

    实验环境 一台最小化安装的CentOS 7.3虚拟机 配置基本环境 1. 安装nginx yum install -y epel-* yum isntall -y nginx vim 2. 建立虚机主 ...

  2. Ubuntu配置Nginx虚拟主机和支持ThinkPHP

    [Nginx配置虚拟主机] 每一个 server { listen       80;         server_name  www.a.com; ..... } 就表示一台虚拟域名, 然后对应的 ...

  3. 在 CentOS7 上配置 nginx 虚拟主机

    创建配置文件保存目录,其中 sites-available 用来实际保存配置文件,sites-enabled 用来保存符号链接 : mkdir /etc/nginx/sites-available m ...

  4. nginx虚拟主机配置

    nginx虚拟主机配置   虚拟主机的概念虚拟主机,就是把一台物理服务器划分成多个"虚拟"的服务器,每一个虚拟主机都可以有独立的域名和独立的目录nginx虚拟主机的配置nginx的 ...

  5. Nginx高性能服务器安装、配置、运维 (5) —— Nginx虚拟主机配置

    六.Nginx虚拟主机配置 建立基于域名的虚拟主机: (1)建立基于域名的虚拟主机配置文件(以abc.com为例): (2)更改虚拟主机配置文件: 更改配置如下(更改部分即可): server { l ...

  6. Nginx教程(二) Nginx虚拟主机配置

    Nginx教程(二) Nginx虚拟主机配置 1 虚拟主机管理 1.1 Nginx管理虚拟主机 虚拟主机使用的是特殊的软硬件技术,它把一台运行在因特网上的服务器主机分成一台台“虚拟”的主机,每台虚拟主 ...

  7. Nginx教程--02.Nginx虚拟主机的配置

    1.Nginx虚拟主机的配置 1.1 在conf目录下,使用命令 : vim nginx.conf 对上图解释: //全局区 worker _processes 1; //表示当前有1个工作的子进程, ...

  8. Nginx 虚拟主机 VirtualHost 配置

    Nginx 是一个轻量级高性能的 Web 服务器, 并发处理能力强, 对资源消耗小, 无论是静态服务器还是小网站, Nginx 表现更加出色, 作为 Apache 的补充和替代使用率越来越高. 我在& ...

  9. Nginx虚拟主机配置教程

    说明:配置之前先把域名解析到服务器IP地址上 站点1:bbs.osyunwei.com  程序所在目录/data/osyunwei/bbs 站点2:sns.osyunwei.com  程序所在目录/d ...

  10. nginx虚拟主机的配置

    nginx虚拟主机的配置 server { listen ; server_name 127.0.0.1; access_log off; root /var/www/html/; location ...

随机推荐

  1. 微信支付java版(含视频讲解)

    1.背景 实际开发中用到微信支付的概率非常大, 至于为什么这里不必要我多少...... 微信支付大体需要对接的核心接口有 其实大部分支付都是这些,就像上一节我们讲的支付宝支付一样 这里以常用的H5支付 ...

  2. 破局SAP实施难题、降低开发难度,定制化需求怎样快速上线?

    前言 SAP 是全球领先的业务流程管理软件供应商之一,其提供广泛的模块化解决方案和套件,所开发的软件解决方案面向各种规模的企业,帮助客户规划和设计业务流程.分析并高效设计整个价值链,以更好的了解和响应 ...

  3. 如何在Spring Cloud中实现Nacos客户端登录密码加密

    背景 公司规范要求配置文件里不能出现明文的密码.最近项目引入了Nacos作为服务的配置中心,使用的是spring-cloud-starter-alibaba-nacos-config这个包. 基本的b ...

  4. C#自己封装数据库操作类BaseADO

    这几天学习数据库操作,就自己封装了一个数据库操作类,下面是代码展示 下面的例子是Access数据库 也可能用在Sql数据库中,只在在第一行代码上修改标识符即可 #define OLEDB_ using ...

  5. 记录荒废了三年的四年.net开发的第三次面试,苏州斯莱克

    现在就业的确崩了 这次面试的时间是8月28号.距离上一次面试已经过去了一个月了,距离开始找工作已经过去了2个月.没多少找工作经验的我也体会到了什么叫就业崩了. 看了一线码农的采访计划后,我也把苏州列为 ...

  6. WebShell流量特征检测_中国菜刀篇

    80后用菜刀,90后用蚁剑,95后用冰蝎和哥斯拉,以phpshell连接为例,本文主要是对这四款经典的webshell管理工具进行流量分析和检测. 什么是一句话木马? 1.定义 顾名思义就是执行恶意指 ...

  7. GPT最佳实践:五分钟打造你自己的GPT

    前几天OpenAI的My GPTs栏目还是灰色的,就在今天已经开放使用了.有幸第一时间体验了一把生成自己的GPT,效果着实惊艳!!!我打造的GPT模型我会放到文章末尾,大家感兴趣也可以自己体验一下. ...

  8. Spring框架漏洞总结

    目录 SpEL注入攻击 Spring H2 Database Console未授权访问 Spring Security OAuth2远程命令执行漏洞(CVE-2016-4977) Spring Web ...

  9. nuxt(搁置)

    https://nuxt.com.cn/docs/getting-started/installation 开始使用 全栈Web应用和网站 Nuxt使用约定和一套规范的目录结构来自动化重复的任务,让开 ...

  10. MyBatis——案例——删除(单个删除与批量删除)

    删除一个   1.编写接口方法:Mapper接口     参数:id     结果:void /** * 删除 */ int deleteById(int id);   2.编写sql语句:SQL映射 ...