Nginx虚拟主机配置

什么是虚拟主机?


虚拟主机就是使用特殊的软硬件技术,把一台计算机主机分成多台“虚拟”的主机,每一台虚拟主机都具有独立的域名和IP地址(或共享的IP地址),具有完整的Internet服务器功能。在同一台硬件、同一个操作系统上,运行着为多个用户打开的不同的服务器程序,互不干扰;而各个用户拥有自己的一部分系统资源(IP地址、文件存储空间、内存、CPU时间等)。 其实说白了就是有一套大房子,然后给这个房子加上隔断,分成几个小屋,然后每个小屋都租赁给一个商户,每个商户之间都是相互不受影响的,相互独立的。

Nginx实现虚拟主机的三种方式


在说三种方式之前,简单的介绍下nginx.conf里面的配置的详情。

Nginx配置段

// 全局区
worker_processes 1; // 有1个工作的子进程,可以自行修改,但太大无益,因为要争夺CPU,一般设置为 CPU数*核数

Event {
// 一般是配置nginx连接的特性
// 如1个worker能同时允许多少连接
 worker_connections  1024; // 这是指 一个子进程最大允许连1024个连接
}

http {  //这是配置http服务器的主要段
     Server1 { // 这是虚拟主机段

            Location {  //定位,把特殊的路径或文件再次定位 ,如image目录单独处理
            }             /// 如.php单独处理

     }

     Server2 {
     }
}

基于域名

需要修改下hosts文件,加上IP和域名的对应关系,要不然是访问不到的。

vim /etc/hosts
192.168.22.33 www.lingzai.com
192.168.22.33 www.xiaowang.com
 server {
        listen 80;
        server_name www.lingzai.com;
        localtion /{
                root html-ling;
                index index.html;
        }
    server {
        listen 80;
        server_name www.xiaowang.com;
        location /{
            root html-wang;
            index index.html;
        }

然后访问相应的域名www.xiaowang.com或者www.lingzai.com就会出现相应的index界面。

基于IP

给每一个server配置一个IP,直接访问不同的IP就会访问不同的虚拟主机。

server{
        listen  80;
        server_name 59.46.80.12;
        location /{
           root  html-wang;
           index index.html;
        }

}
server{
     listen  80;
     server_name 59.46.80.11;
     location /{
        root  html-ling;
        index index.html;
     }

 }

注意:配置完成后,需要reload配置才会生效:

reload nginx配置文件,命令:/nginx/bin/nginx -s reload

基于端口

当输入不同的端口号的时候,进入不同的虚拟主机。配置如下:

server{
        listen  2022;
        server_name 192.168.22.33;
        location /{
           root  html-wang;
           index index.html;
        }

    }
    server{
        listen  2033;
        server_name 192.168.22.33;
        location /{
           root  html-ling;
           index index.html;
        }

    }

在浏览器中输入192.168.22.33:2033或者2022就会进入不同的虚拟主机。

通过以上任意一种方式你就可以在一台服务器上发布多个网站,网站之间的运行互相独立不受影响。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程坑太多

『中级篇』Vagrant在本地搭建多节点K8S集群(65)

https://github.com/limingios/docker/tree/master/No.9

5138
来自专栏架构师之路

线上服务内存OOM问题定位三板斧

相信大家都有感触,线上服务内存OOM的问题,是最难定位的问题,不过归根结底,最常见的原因: 本身资源不够 申请的太多 资源耗尽 58到家架构部,运维部,58速运...

3436
来自专栏云计算教程系列

如何在Ubuntu 16.04上安装和配置Elasticsearch

Elasticsearch是一个实时分布式搜索和分析数据的平台。它的流行是由于其易用性,强大的功能和可扩展性。

1.9K2
来自专栏Java后端技术栈

2018整理最全的50道Redis面试题!

Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到...

3180
来自专栏编程坑太多

『中级篇』Vagrant在本地搭建多节点K8S集群(65)

PS:遗憾的是:Tectonic已经sandbox下架了,我在网上找了一份直接传到github了,自己下载吧。直接通过vagantfile的方式搭建。

1803
来自专栏用户画像

3.1.4.1 基本分页存储管理方式

非连续分配允许一个程序分散地装入到不相邻的内存分区中,根据分区的大小是否固定分为分页存储管理方式和分段存储管理方式。

771
来自专栏编程软文

开发过程中快速抓包并解析

这几天小编在工作中遇到了一个灵异事件,客户端使用的是安卓原生系统,服务端使用的是java。需求就是客户端在照相的时候可以实时上传照片。后台接收并保存,并且可以在...

2713
来自专栏余生开发

VS Code—插件的开发

说再多也不如做一遍,这里我们一起来一步步做一个插件。就做官网的那个demo,wordCounter,用于统计当前页单词量。 官网是TypeScript,我不会....

1.4K1
来自专栏佳爷的后花媛

如何使用Thinkphp搭建商城系统(一)

由于工作需要,我要使用Thinkphp框架,但是我对php不是很了解,我觉得想要快速掌握一门语言或者一个框架,最好的方法就是做出一个小作品,只有在自己做这个作品...

1K2
来自专栏皮振伟的专栏

[linux][statethread]协程库ST技术分析

前言: 在IO密集型的场景下,尤其是互联网后台,经常会使用epoll等IO复用技术。鉴于直接使用epoll的代码阅读性和开发效率等原因,就抽象出来了各种高级模型...

3428

扫码关注云+社区

领取腾讯云代金券