Nginx企业级负载均衡:技术详解系列(11)—— 实战一机多站部署技巧

在这里插入图片描述
你好,我是赵兴晨,97年文科程序员。

工作中你是否遇到过这种情况:公司业务拓展,新增一个域名,但服务器资源有限,只能跟原有的网站共用同一台Nginx服务器。

也就是说两个网站的域名都指向同一台Nginx服务器,而且还都用的80和443端口,要求各自的静态资源互不干扰,就像两个邻居,虽然住得近,但各有各的生活。

如果你是我,你会怎么搞定这个呢?

其实这个问题很简单,相当于通过两个不同域名,访问PC端域名看到的是PC端网页,访问移动端的域名看到的就是移动端的网页。

下面跟着我,咱们一步步来揭晓答案。

核心配置示例
基于不同的IP、不同的端口以及不同的域名实现不同虚拟主机,依赖于核心模块ngx_http_core_module实现。

1、新建一个PC web站点
以下示例是演示如何将一个PC端的web站点,部署到Nginx服务器上。

这里我们使用的是子配置文件,而不是Nginx的主配置文件(nginx.conf)。

因为使用子配置文件可以保持主配置文件的简介和清晰,便于管理和维护。

1)定义子配置文件路径

# 创建Nginx配置文件存放目录,安装的时候目录是创建好的。
mkdir /usr/local/nginx/conf/conf.d/

2)修改主配置文件(使其引用自配置文件)

# 使用VI编辑器,对nginx主配置文件过 nginx.conf进行修改
# 目的是引入子配置文件路径
vi /usr/local/nginx/conf/nginx.conf
# Nginx 主配置文件
http {
    # 在配置文件的最后添加
    # 包含所有conf.d目录下的配置文件
    include /usr/local/nginx/conf/conf.d/*.conf;
}

3)创建PC web站点配置文件

# 使用VI编辑器 直接新建并编辑 pc.conf
vi /usr/local/nginx/conf/conf.d/pc.conf
编辑内容如下
server {
    listen 80;
    server_name chensir.ink;

    # 定义PC站点的根目录
    root /data/nginx/html/pc;

    # 定义网站的首页
    location / {
        index index.html;
    }
}

4)新建PC web站点静态资源(模拟PC web站点)
新建站点主目录,与上面👆🏻location对应。

mkdir -p /data/nginx/html/pc

模拟PC web站点主页

echo "hello pc web" > /data/nginx/html/pc/index.html

5)加载配置文件,访问测试

systemctl reload nginx

在这里插入图片描述

2、新建一个Mobile web站点
与新建PC web站点步骤类似,这里只说关键步骤。

1)创建Mobile web站点nginx子配置文件

# 使用VI编辑器 直接新建并编辑 mobile.conf
vi /usr/local/nginx/conf/conf.d/mobile.conf

编辑内容如下

server {
    listen 80;
    # 指定第二个站点名称
    server_name m.chensir.ink;

    # 定义mobile站点的根目录
    root /data/nginx/html/mobile;

    # 定义网站的首页
    location / {
        index index.html;
    }
}

2)新建mobile web站点静态资源(模拟mobile web站点)

新建站点主目录,与上面👆🏻location对应。

mkdir -p /data/nginx/html/mobile

模拟PC web站点主页

echo "hello mobile web" > /data/nginx/html/mobile/index.html

3)加载配置文件,访问测试

systemctl reload nginx

在这里插入图片描述
总结:我们成功的搭建了PC和Mobile web站点,并且通过演示展示了如何基于域名实现虚拟主机的配置(即给予域名的服务器分发)。

这种方法允许我们根据不同的域名请求来提供相应的内容:

当用户通过PC站点的域名发起请求时,他们看到专为PC端设计的静态页面,这提供了一个优化桌面用户体验。
相应地,当用户通过Mobile站点的域名发起请求时,他们将被引导至专为移动端优化的web站点内容,确保在移动设备上的访问流畅和友好界面。

OK,今天的分享就到这里。希望我的分享能给你的工作带来一点点灵感,哪怕是一丝丝帮助也好。

如果你对Nginx的这个用法有任何疑问,或者有更好的点子,别犹豫,别害臊,直接加我好友,或者在文章底部留言告诉我。

我特别期待能听到你的反馈,无论是问题还是建议,都是我前进的动力。

对了,别忘了,如果你觉得这篇文章对你有帮助,就请点个赞,或者把它分享给更多需要的朋友。你的支持是我最大的荣幸!

更重要的是,如果你喜欢这类内容,别忘了关注我,这样你就不会错过任何更新啦、我们下次见!


最后,我为您准备了一份特别的技术学习礼物,包括:
Linux学习笔记:详尽记录了Linux的核心知识点和实用技巧。
Java基础笔记:为您打下坚实的Java编程基础。
Java面试总结:十万字的面试经验,助您轻松应对各种技术面试。

【一键领取】
领取这份资料包,您只需轻松一扫:
按住👇🏻图片,扫描二维码,备注:【大礼包】‍
通过好友验证后,您的的专属资料包就会立即发送给您。

Linux系统学习笔记、Java基础学习笔记、10万字Java面试总结
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/635894.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

WPF中DataGrid实现多选框功能

1. 效果图 2. Model建立 public class RstModelCheck : ObservableObject {//为了显示Head1和Head2.而且View中绑定属性而非字段,否则不能显示。public string? Name { get; set; } public bool PlatenAll {get > _platenAll;set{SetProperty(ref _platenAl…

MoonDream2微调指南【最小VLM】

在本指南中,我们将探讨如何使用计算机视觉数据集对完全开源的小型视觉语言模型 Moondream2 进行微调,以计数项目(这是 GPT-4V 一直表现不一致的任务),并以一种可以依赖输出用于生产应用程序的方式进行微调。 视觉语言…

电力巡检穿戴式智能手环:让巡检不孤立无援

电力巡检穿戴式智能手环:让巡检不孤立无援 在电力巡检的广袤天地里中,电力工作人员他们身着工装,头戴安全帽,手持仪器,穿梭在高压线路与铁塔之间。他们的健康状态,直接关系到电力作业的安全与效率。如今,电…

先进电气技术 —— 控制理论中的“观测器”概述

一、背景 观测器在现代控制理论中的地位十分重要,它是实现系统状态估计的关键工具。观测器的发展历程可以从以下几个方面概述: 1. 起源与发展背景: 观测器的概念源于对系统状态信息的需求,特别是在只能获取部分或间接输出信息…

免费分享一套微信小程序旅游推荐(智慧旅游)系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】,帅呆了~~

大家好,我是java1234_小锋老师,看到一个不错的微信小程序旅游推荐(智慧旅游)系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】,分享下哈。 项目视频演示 【免费】微信小程序旅游推荐(智慧旅游)系统(SpringBoot后端Vue管理端) Java毕业设计…

VSCode注释模板配置(koroFileheader插件)

近期公司转远程开发,原本idea本地开发用得很丝滑,但使用idea client切换到远程开发,发现各种难受,于是只好探索新工具,py和cpp一直用vscode,于是也试试java,果然比idea client强不只一点点&…

小程序-滚动触底-页面列表数据无限加载

// index/index.vue <template> <!-- 自定义导航栏 --> <CustomNavbar /> <scroll-view scrolltolower"onScrolltolower" scroll-y class"scroll-view"> <!-- 猜你喜欢 --> <Guess ref"guessRef" /> </s…

【RFID打破时尚行业货品管理困境】

时尚行业数字化转型 越来越多的快时尚品牌意识到&#xff0c;要应对市场的快速变化和消费者的多样化需求&#xff0c;构建数字化转型是服饰企业发展的必然趋势。 数智化技术成为了企业“降本增效”的关键因素&#xff0c;时尚行业供应链管理开始走向数字化、智能化。根据第一…

在kaggle中的notebook 如何自定义 cuda 版本以及如何使用自定义的conda或python版本运行项目(一)

问题 第一部分 当前kaggle中带有gpu的notebook 默认的cuda 是12.1版本&#xff0c;如果我要跑一个项目是11.3的&#xff0c;如何将默认的cuda 改为自己需要的cuda 11.3 方法 step1 从官网下载需要的版本cuda run 文件&#xff08;如cuda 11.3&#xff09; 在nvidia cuda 下…

【linux】服务器sshd服务导致CPU负载过高问题

一、背景 一台服务器突然访问ssh特别缓慢&#xff0c;top命令查看后&#xff0c;服务器Load Average占用很高。看相关异常进程都是sshd服务导致。 二、排查思路 查看服务器内存&#xff0c;磁盘io都是正常&#xff0c;在用连接数也不多。 一开始就怀疑是不是服务器被恶意攻…

20232820 2023-2024-2 《网络攻防实践》实践十一报告

20232820 2023-2024-2 《网络攻防实践》实践十一报告 1.实践内容 web浏览器渗透攻击 任务&#xff1a;使用攻击机和Windows靶机进行浏览器渗透攻击实验&#xff0c;体验网页木马构造及实施浏览器攻击的实际过程 取证分析实践—网页木马攻击场景分析 攻防对抗实践—web浏览…

【云原生】kubernetes中的service原理、应用实战案例解析

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

SQL注入:pikachu靶场中的SQL注入通关

目录 1、数字型注入&#xff08;post&#xff09; 2、字符型注入&#xff08;get&#xff09; 3、搜索型注入 4、XX型注入 5、"insert/update"注入 Insert&#xff1a; update&#xff1a; 6、"delete"注入 7、"http header"注入 8、盲…

java集合类详解

目录 1、数组导入&#xff1a; 2、单列集合 List接口 1、ArrayList&#xff1a;数组列表 ArrayList类中的方法 2、LinkedList&#xff1a;链表列表 3、Vector&#xff1a;数组列表 4、list集合的遍历 1、for循环遍历 2、增强for循环 3、迭代器遍历 Set接口 1、Has…

深入探索Kafka:了解其不可或缺的核心组件

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《数据流专家&#xff1a;Kafka探索》&#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、引言 1、Kafka简介 2、Kafka的应用场景 3、Kafka与其他消…

【线性回归】梯度下降

文章目录 [toc]数据数据集实际值估计值 梯度下降算法估计误差代价函数学习率参数更新 Python实现导包数据预处理迭代过程结果可视化完整代码 结果可视化线性拟合结果代价变化 数据 数据集 ( x ( i ) , y ( i ) ) , i 1 , 2 , ⋯ , m \left(x^{(i)} , y^{(i)}\right) , i 1 ,…

使用 Django Rest Framework 构建强大的 Web API

文章目录 安装 Django Rest Framework创建序列化器创建视图和 URL 路由配置认证和权限测试 API Django Rest Framework&#xff08;DRF&#xff09;是一个强大的工具&#xff0c;用于在 Django Web 框架中构建灵活且功能丰富的 Web API。它提供了许多功能&#xff0c;包括序列化…

微服务项目收获和总结---第2,3天(分库分表思想,文章业务)

①分库分表思想 文章表一对一为什么要拆分&#xff1f;因为文章的内容会非常大&#xff0c;查询效率会很低&#xff0c;我们经常操作文章的基本信息&#xff0c;不会很经常查询文章内容。充分发挥高频数据的操作效率。 ②freemarker和minIO 由于文章内容数据量过大&#xff0c…

FreeRTOS_同步互斥与通信_队列集_学习笔记

FreeRTOS_同步互斥与通信_环形buffer、队列_学习笔记 5.5 队列集 要支持多个输入设备时&#xff0c;我们需要实现一个“InputTask”&#xff0c;它读取各个设备的队列&#xff0c;得到数据后再分别转换为游戏的控制键。 InputTask如何及时读取到多个队列的数据&#xff1f;要…

(十)统计学基础练习题四(50道选择题)

本文整理了统计学基础知识相关的练习题&#xff0c;共50道&#xff0c;适用于想巩固统计学基础或备考的同学。来源&#xff1a;如荷学数据科学题库&#xff08;技术专项-统计学一&#xff09;。序号之前的题请看往期文章。 151&#xff09; 152&#xff09; 153&#xff09; 1…