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

相关推荐
IT 小阿姨(数据库)17 分钟前
PostgreSQL pg_stat_bgwriter 视图各个字段详解
linux·数据库·sql·postgresql·centos
风语者日志1 小时前
[LitCTF 2023]Vim yyds
linux·编辑器·vim
CS Beginner1 小时前
【IDEA】记录webapp下创建相同目录的一次错误
java·intellij-idea·web app
Thexhy1 小时前
在centos 7上配置FIP服务器的详细教程!!!
linux·运维·centos
FJW0208142 小时前
DevOps——CI/CD持续集成与持续交付/部署的理解与部署
运维·ci/cd·devops
Java 码农2 小时前
Linux shell sed 命令基础
linux·运维·服务器
yong15858553432 小时前
1. Linux C++ muduo 库学习——库的编译安装
linux·c++·学习
fyakm2 小时前
Linux网络接口配置:静态IP与动态IP设置(附代码示例)
linux·运维·tcp/ip
怀旧,2 小时前
【Linux系统编程】5. 基础开发⼯具(下)
linux·运维·服务器
喵叔哟2 小时前
10. 从0到上线:.NET 8 + ML.NET LTR 智能类目匹配实战--Web API 接口与前端集成:部署与生产运维:稳定性、可观测与成本
运维