Nginx虚拟主机配置

一、介绍

Nginx 虚拟主机是一种在单个服务器上运行多个网站或应用的技术。

通过不同的配置来区分多个虚拟主机,每个虚拟主机可以拥有独立的域名、端口、文档根目录等设置。这样可以充分利用服务器资源,提高服务器的效率和灵活性。

在配置 Nginx 虚拟主机时,需要指定相关的主机名、端口、根目录等信息,以实现对不同网站或应用的区分和管理。

关于Nginx的安装可以参考:使用Docker安装Nginx

优点

高效利用资源:可以在一台服务器上运行多个网站,提高服务器的利用率。

灵活配置:可以根据不同的需求进行灵活的配置。

性能优越:Nginx 具有高性能,能够快速处理请求。

缺点

配置相对复杂:需要一定的技术知识和经验来进行配置。

维护难度:如果虚拟主机数量较多,维护起来可能会有一定难度。

配置方式

基于端口:使用不同的端口来配置虚拟主机。

基于 IP 地址:为每个虚拟主机分配不同的 IP 地址。

基于域名:通过不同的域名来区分不同的虚拟主机。

二、准备工作

在Nginx的html目录下,创建两个目录,分别代表两个不同的web项目

在 project1 目录下创建文件 index.html

写入以下内容:

html 复制代码
<html> 
<head> 
<title>project1</title> 
</head> 
<body> 
<h1> This is project1! </h1> 
</body> 
</html>

在 project2 目录下创建文件 index.html

写入以下内容:

html 复制代码
<html> 
<head> 
<title>project2</title> 
</head> 
<body> 
<h1> This is project2! </h1> 
</body> 
</html>

三、基于端口的虚拟主机配置

配置文件内容如下:

bash 复制代码
server {
    listen       85;
    server_name  localhost;


    location / {
        root   /usr/share/nginx/html/project1;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

server {
    listen       90;
    server_name  localhost;


    location / {
        root   /usr/share/nginx/html/project2;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

修改完配置文件后,需要重新加载配置文件。

打开浏览器访问 http://你的ip地址:85 出现 project1

访问 http://你的ip地址:90 出现 project2

四、基于IP地址的虚拟主机配置

配置文件内容如下:

bash 复制代码
server {
    listen       192.168.10.10:80;
    server_name  localhost;


    location / {
        root   /usr/share/nginx/html/project1;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

server {
    listen       192.168.10.20:80;
    server_name  localhost;


    location / {
        root   /usr/share/nginx/html/project2;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

修改完配置文件后,需要重新加载配置文件。

此时打开浏览器

输入 http://192.168.10.10 会访问project1

输入 http://192.168.10.20 会访问project2

五、基于域名的虚拟主机配置

配置文件内容如下:

bash 复制代码
server {
    listen       80;
    server_name  project1.testnginx.com;


    location / {
        root   /usr/share/nginx/html/project1;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

server {
    listen       80;
    server_name  project2.testnginx.com;


    location / {
        root   /usr/share/nginx/html/project2;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

修改完配置文件后,需要重新加载配置文件。

需要配置hosts

bash 复制代码
192.168.10.10 project1.testnginx.com
192.168.10.10 project2.testnginx.com

此时打开浏览器

输入 http://project1.testnginx.com 会访问project1

输入 http://project2.testnginx.com 会访问project2

相关推荐
xflySnail10 分钟前
nas服务域名高速访问-DNS+ESA
运维·服务器·esa·无端口访问
赵民勇6 小时前
Linux/Unix中install命令全面用法解析
linux·shell
苏宸啊8 小时前
Linux指令篇(一)
linux·运维·服务器
睡不醒的猪儿8 小时前
nginx常见的优化配置
运维·nginx
我要升天!8 小时前
Linux中《网络基础》
linux·运维·网络
国强_dev9 小时前
在数据库开发和运维中的“错误信息误导(Red Herring)”
运维·adb·数据库开发
安科瑞刘鸿鹏179 小时前
工业自动化系统中抗晃电保护的协同控制研究
运维·网络·嵌入式硬件·物联网
ZStack开发者社区9 小时前
ZStack Cloud 5.5.0正式发布
运维·服务器·网络
草莓熊Lotso9 小时前
脉脉独家【AI创作者xAMA】|当豆包手机遭遇“全网封杀”:AI学会操作手机,我们的饭碗还保得住吗?
运维·开发语言·人工智能·智能手机·脉脉
鸽芷咕9 小时前
【2025年度总结】时光知味,三载同行:落笔皆是沉淀,前行自有光芒
linux·c++·人工智能·2025年度总结