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

相关推荐
PYB39 分钟前
【Web·基础学习】基础布局
css·html·web
雯宝12 分钟前
mnt_init 函数
linux
律宏阔6 小时前
WSL Docker 端口明明空闲,但就是绑不上端口
linux·windows
律宏阔6 小时前
WSL 突然断网,无法 ping 内网或外网
linux·windows
穷人小水滴6 小时前
用容器编译 VirtualBox 虚拟机软件 (ArchLinux, podman)
linux·容器·virtualbox
乱码三千7 小时前
如何优雅地直连无公网 IP 的远程 GPU 服务器
linux·人工智能·程序员
yunwei377 小时前
使用 eBPF 跟踪 Nginx 请求
linux·后端·性能优化
yunwei377 小时前
使用 eBPF 跟踪 MySQL 查询
linux·后端·性能优化
yunwei377 小时前
eBPF 示例教程:使用 XDP 捕获 TCP 信息
linux·后端·性能优化
judezh7 小时前
api 容器一直 unhealthy?我把一个 Agent 运行时的健康检查逐条拆了,查出四个问题
运维·docker