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

相关推荐
ziguo112214 小时前
深入浅出 C/C++ 数据类型:从入门到踩坑
linux·c语言·c++·windows·visual studio
无垠的广袤14 小时前
【工业树莓派 CM0 Dev Board】扩展板设计
linux·python·嵌入式硬件·pcb设计·模块化·传感器
会编程的土豆14 小时前
MySQL 入门:库、表、行、主键是什么
linux·数据库·网络协议·http
△曉風殘月〆15 小时前
如何在Linux中安装Qt开发环境
linux·运维·qt
不会就选b16 小时前
Linux之文件--fd,重定向
linux
三十岁老牛再出发16 小时前
07.26每日总结
linux·c语言·mysql
fengyehongWorld17 小时前
Linux update-alternatives命令
linux
雨的旋律209917 小时前
ubuntu2604
linux·运维·服务器
DogDaoDao17 小时前
OpenBrowser 深度解析:让 AI 真正「用上」浏览器的自主代理框架
人工智能·程序员·大模型·github·web·ai工具·openbrowser
Eloudy17 小时前
ubuntu 22.04安装 cuda 12.8.2
linux·运维·ubuntu