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

相关推荐
木卫二号Coding1 小时前
推荐Linux统计文件大小并操作删除工具-ncdu
linux·运维·服务器
志栋智能2 小时前
超自动化运维:实现IT服务消费化的基础
运维·自动化
198******126343 小时前
2026企业AI办公工具选型指南:从评估框架到场景适配
大数据·运维·人工智能
吴声子夜歌3 小时前
Nginx应用与运维——Nginx HTTP模块详解(数据处理功能模块)
运维·nginx·http
zhangrelay3 小时前
机械臂末端规划智能模型的误区演示
linux·笔记·学习·ubuntu·ros2
2601_967212723 小时前
专利型电源轨道系统技术路线对比与选型框架
大数据·运维·网络·经验分享
数字化顾问4 小时前
(138页PPT)流程体系的建设优化与运营(附下载方式)
大数据·运维·人工智能
2601_967287575 小时前
轮胎侧壁上的 91V 是什么意思,负荷指数与速度级别怎么看
运维·服务器·汽车
Ivanqhz5 小时前
正余弦位置编码(Sinusoidal Positional Encoding)
java·linux·数据库
H.莓飛5 小时前
【数据结构】队列
linux·数据结构·centos