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面试总结
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

过滤器Filter

目录 概述 Filter快速入门 概述 概念:Filter过滤器,是JavaWeb三大组件(Servlet,Filter,Listener)之一。 过滤器可以把对资源的请求拦截下来,从而实一些特殊的功能。 过滤器一般完成一些通用的操作,比如…

MySQL(二)基本SQL语句以及基本函数应用

1、基本SQL语句 MySQL中定义数据字段的类型对你数据库的优化是非常重要的。 MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。 - 函数应用在sql语句中 -- 临时表 select now() from dual;-- 数…

活动预告|与 Zilliz 共探亚马逊云科技中国峰会

亚马逊云科技中国峰会是由全球云计算的开创者和引领者亚马逊云科技举办的一年一度的科技盛会。 参与者将有机会了解云计算推动行业发展的新趋势与解决方案、生成式 AI 等前沿技术的落地实践,通过大量成功案例解析,获得灵感及经验来解决实际问题&#xff…

民国漫画杂志《时代漫画》第26期.PDF

时代漫画26.PDF: https://url03.ctfile.com/f/1779803-1248635183-9832d2?p9586 (访问密码: 9586) 《时代漫画》的杂志在1934年诞生了,截止1937年6月战争来临被迫停刊共发行了39期。 ps: 资源来源网络!

AGV与智能仓储的应用案例

背景介绍 该企业的智能工厂专注于高端家用电器的生产与研发,包括电子坐便盖、电子坐便器、吸尘器、洗碗机等,覆盖8条关键产线。面对日益增长的市场需求和生产节奏的加快,传统的物流方式已无法满足高效、精准的生产要求。为此,企业…

电流采样(分流器与霍尔传感器)

在对于电信号采集的设计中,其中对电流信号的采集是非常常见的,根据电流信号的属性,如信号大小、信号周期等因素,以及采样的需求指标不一样,往往需要选择不同的采样方式进行采样。 下面主要介绍分流器和霍尔元件采样电…

【贪心算法指针】C++ 解决子数组 / 子序列的相关问题(最大数、数组和减半的最小操作数、连续/递增序列)

文章目录 1. 前言1.1 贪心算法介绍 2. 算法题2.1_将数组和减半的最少操作次数2.2_最大数2.3_最长递增子序列2.4_递增的三元子序列2.5_最长连续递增序列2.6_数组中的最长连续子序列2.7_在字符串中找出连续最长的数字串 1. 前言 1.1 贪心算法介绍 贪心算法(Greedy A…

一文搞透常见的Python编码陷阱(上)(分析+案例)

一个认为一切根源都是“自己不够强”的INTJ 个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 一、别忘了冒号 1. if 语句 2. while 语句 3. for 语句 4. 函数定义 5. 类定义 6. try/except 语句 …

RTDETR结合CVPR2024最新图像增强算法!让你的模型无惧风雨【含端到端推理脚本】

如何有效地探索雨痕的多尺度表示对于图像去雨是很重要的。与现有的基于Transformer的方法相比,这些方法主要依赖于单一尺度的雨痕外观,我们开发了一个端到端的多尺度Transformer,利用各种尺度中潜在有用的特征来促进高质量的图像重建。为了更好地探索空间变化的雨痕的常见退…

满帮集团 Eureka 和 ZooKeeper 的上云实践

作者:胡安祥 满帮集团,作为“互联网物流”的平台型企业,一端承接托运人运货需求,另一端对接货车司机,提升货运物流效率。2021 年美股上市,成为数字货运平台上市第一股。根据公司年报,2021 年&a…

网络协议——FTP(简介、搭建FTP服务端)

一、简介 1、什么是FTP? FTP(File Transfer Protocol,文件传输协议) TCP/IP 协议组的协议之一。常用20(数据)、21(命令)端口作为通讯端口。(22为SSH端口)F…

就业班 第三阶段(ELK) 2401--5.22 day3 filebeat+elk云部署

kafka集群 Windterm同步输入,多台机子可以同时输入同步输入 启动kafka需要启动两个 第一个 [rootkafka1 ~]# cd /usr/local/kafka_2.11-2.0.0/ [rootkafka1 ~]# nohup bin/zookeeper-server-start.sh config/zookeeper.properties &第二个 [rootkafka1 ~]#…

20232810 肖峰 2023-2024-2 《网络攻防实践》实验十一

一、实践内容 (1)web浏览器渗透攻击 任务:使用攻击机和Windows靶机进行浏览器渗透攻击实验,体验网页木马构造及实施浏览器攻击的实际过程。 实验步骤: ①选择使用Metasploit中的MS06-014渗透攻击模块 ②选择PAYLOAD为任…

Linux 36.3@Jetson Orin Nano之系统安装

Linux 36.3Jetson Orin Nano之系统安装 1. 源由2. 命令行烧录Step 1:下载Linux 36.3安装程序Step 2:下载Linux 36.3根文件系统Step 3:解压Linux 36.3安装程序Step 4:解压Linux 36.3根文件系统Step 5:安装应用程序Step …

# Mybatis 高级用法和tk.mybatis使用

Mybatis 高级用法和tk.mybatis使用 文章目录 Mybatis 高级用法和tk.mybatis使用使用SelectProvider、InsertProvider、UpdateProvider、DeleteProviderSelectProvider使用例子 tk.mybatis引入依赖查询实现实体映射类实体类规范 dao层调用dao 使用SelectProvider、InsertProvide…

eBay运营账号防关联成功的关键因素是什么?

一、什么是ebay eBay如今的发展现状呈现出积极且充满活力的态势。作为全球知名的在线拍卖和购物平台,随着全球消费者对线上购物的需求不断增长,这为卖家提供了广阔的市场空间和盈利机会,但多账号的运营若处理不好容易引起账号被关联&#xf…

基于生命周期评价法的农田温室气体排放估算;农田CH4和N2O排放模拟;农田碳库模型和土壤呼吸等

目录 专题一 温室气体排放模拟研究 专题二 农田CH4和N2O排放模拟 专题三 农田碳库模型和土壤呼吸 专题四 基于生命周期评价法的农田温室气体排放估算 专题五-六 基于过程模型的温室气体排放模拟 专题七 案例模拟与疑难解答 更多应用 农业是甲烷(CH4&#xff…

全球前五!ATFX 2024年Q1业绩狂飙,6240亿美元交易量彰显实力

5月,密集发布的报告显示,强者恒强是差价合约行业不变的竞争逻辑。而ATFX最新展现的业绩无疑是这一逻辑的有力例证。依照惯例,知名行业媒体Finance Magnates日前公布了全球经纪商最为关注的2024年第一季度行业报告。报告数据显示,A…

数据结构算法-堆(Heap)和优先队列

堆的概念 堆(heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质: always greater than its child node/s and the key of the root node is the largest among all other nodes. This property…

第53期|GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区,集成了生成预训练Transformer(GPT)、人工智能生成内容(AIGC)以及大语言模型(LLM)等安全领域应用的知识。在这里,您可以找…