当前位置: 首页 > news >正文

Nginx专题-基于多网卡的主机配置

文章目录

  • Nginx 基于多网卡的主机实现
    • 一、虚拟机前置环境准备
      • `ifcfg-ens32`配置文件的内容参考
      • `ifcfg-ens33`配置文件的内容
    • 二、案例演示
      • 修改nginx.conf配置文件
      • 解决中文乱码

Nginx 基于多网卡的主机实现

在这里插入图片描述

一、虚拟机前置环境准备

点击虚拟机右下角的 红色标框按钮,然后右键设置,在弹框内点击添加按钮,选择网络适配器,点击完成,然后选择刚添加的网络适配器,右侧选择自定义然后选择net8网卡。我这里是额外添加了2块网卡。建议在操作这种方式之前,先给虚拟机拍摄一个镜像快照,好弄坏了之后可以快速恢复。

在这里插入图片描述 在这里插入图片描述

添加网卡后,可以通过 ip a 看到,多了ens 33 和 ens 34, ensXX 每个人机器可能会不太一样,我原来只有一个ens32。然后我们需要到 /etc/sysconfig/network-scripts 里重新配置一下 ip地址。这里可以直接copy ens32的配置文件,改下内容和ip即可。需要注意,**UUID,新添加的网卡里的文件需要删除。**修改完成后,再刷新一下网络 systemctl restart network(重启网络服务,包括网络接口和网络配置。执行此命令后,系统会停止并重新启动网络服务,使新的网络配置生效。)

[root@localhost network-scripts]#
[root@localhost network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@localhost network-scripts]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:f0:d4:7e brd ff:ff:ff:ff:ff:ffinet 192.168.125.100/24 brd 192.168.125.255 scope global noprefixroute ens32valid_lft forever preferred_lft foreverinet6 fe80::3c1a:3ae7:b89f:526c/64 scope link noprefixroute valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000link/ether 52:54:00:7c:bd:25 brd ff:ff:ff:ff:ff:ffinet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000link/ether 52:54:00:7c:bd:25 brd ff:ff:ff:ff:ff:ff
9: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:f0:d4:88 brd ff:ff:ff:ff:ff:ffinet 192.168.125.3/24 brd 192.168.125.255 scope global noprefixroute dynamic ens33valid_lft 1793sec preferred_lft 1793secinet6 fe80::1412:42a9:8970:c761/64 scope link noprefixroute valid_lft forever preferred_lft forever
10: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:f0:d4:92 brd ff:ff:ff:ff:ff:ffinet 192.168.125.4/24 brd 192.168.125.255 scope global noprefixroute dynamic ens34valid_lft 1798sec preferred_lft 1798secinet6 fe80::a25d:4f31:41b2:d1bf/64 scope link noprefixroute valid_lft forever preferred_lft forever
[root@localhost network-scripts]#
[root@localhost network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@localhost network-scripts]# ls
ifcfg-ens32  ifdown-ippp    ifdown-sit       ifup-bnep  ifup-plip    ifup-Team          network-functions-ipv6
ifcfg-lo     ifdown-ipv6    ifdown-Team      ifup-eth   ifup-plusb   ifup-TeamPort
ifdown       ifdown-isdn    ifdown-TeamPort  ifup-ib    ifup-post    ifup-tunnel
ifdown-bnep  ifdown-post    ifdown-tunnel    ifup-ippp  ifup-ppp     ifup-wireless
ifdown-eth   ifdown-ppp     ifup             ifup-ipv6  ifup-routes  init.ipv6-global
ifdown-ib    ifdown-routes  ifup-aliases     ifup-isdn  ifup-sit     network-functions
[root@localhost network-scripts]# 
[root@localhost network-scripts]# 
[root@localhost network-scripts]# cp ifcfg-ens32 ifcfg-ens33
[root@localhost network-scripts]# cp ifcfg-ens32 ifcfg-ens34
[root@localhost network-scripts]# ls
ifcfg-ens32  ifdown-bnep  ifdown-isdn    ifdown-Team      ifup-bnep  ifup-isdn   ifup-routes    ifup-wireless
ifcfg-ens33  ifdown-eth   ifdown-post    ifdown-TeamPort  ifup-eth   ifup-plip   ifup-sit       init.ipv6-global
ifcfg-ens34  ifdown-ib    ifdown-ppp     ifdown-tunnel    ifup-ib    ifup-plusb  ifup-Team      network-functions
ifcfg-lo     ifdown-ippp  ifdown-routes  ifup             ifup-ippp  ifup-post   ifup-TeamPort  network-functions-ipv6
ifdown       ifdown-ipv6  ifdown-sit     ifup-aliases     ifup-ipv6  ifup-ppp    ifup-tunnel
[root@localhost network-scripts]# 
[root@localhost network-scripts]# 
[root@localhost network-scripts]# vim ifcfg-ens33
[root@localhost network-scripts]# vim ifcfg-ens34
[root@localhost network-scripts]# 
[root@localhost network-scripts]# 
[root@localhost network-scripts]# 
[root@localhost network-scripts]# systemctl restart network

ifcfg-ens32配置文件的内容参考

复制 ifcfg-ens32 ,给 ifcfg-ens33, ifcfg-ens34. vim 修改里面的 NAME,DEVICE,IP为自己的name,device,ip.然后注意 UUID,新添加的网卡里的文件需要删除。

[root@localhost network-scripts]# 
[root@localhost network-scripts]# cat ifcfg-ens32
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens32
UUID=1dd7cf75-792e-4eb6-b480-e47a69ea352b
DEVICE=ens32
EONBOOT=yes
IPADDR=192.168.125.100
NETMASK=255.255.225.0
GATEWAY=192.168.125.2

ifcfg-ens33配置文件的内容

33 和 34的类似,这里就不给出34的了,需要删除 UUID

[root@localhost network-scripts]# cat ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
DEVICE=ens33
EONBOOT=yes
IPADDR=192.168.125.101
NETMASK=255.255.225.0
GATEWAY=192.168.125.2

二、案例演示

修改nginx.conf配置文件

前面添加了 2个新的虚拟网卡,并配置了ip为 192.168.125.101,192.168.125.102. 这里就模拟了 在一个nginx服务里管理,3台不同的服务器。下面是分别监听这3台服务器的 80端口,访问的index页面。

http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;#在http段中添加chartset 设置字符集为 utf-8即可对下面的所有虚拟主机生效,不加会有中文乱码问题charset utf-8;server {listen       192.168.125.100;server_name  localhost;location / {root   html/virtual01;index  index.html index.htm;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}server {listen       192.168.125.101;server_name  localhost;location / {root   html/virtual01;index  index.html index.htm;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}server {listen       192.168.125.102;server_name  localhost;location / {root   html/virtual02;index  index.html index.htm;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}
}
  • 其实 上面的 server段的虚拟主机的location段 / 的路径是 指代 执行了 ./sbin/nginx -V 下的 --prefix=/opt/software/middleware/nginx-install-1.22.1, 因此 root 路径里的就是指 /opt/software/middleware/nginx-install-1.22.1/html/virtual01, index 就是指 index首页。

  • nginx默认的首页就是在html/index.html, 我这里为了更深刻的理解它的路径,更换成了自己的文件夹/opt/software/middleware/nginx-install-1.22.1/html/virtual01/index.html

  • 根据上面的 conf文件里的配置,当我访问 192.168.125.100 和 192.168.125.101 时,它会监听到80端口被访问,然后返回 /opt/software/middleware/nginx-install-1.22.1/html/virtual01/index.html 也就是 返回: 你好我是虚拟主机1。访问 192.168.125.102时,返回 /opt/software/middleware/nginx-install-1.22.1/html/virtual01/index.html 也就是 返回: 你好我是虚拟主机2

[root@localhost nginx-install-1.22.1]# 
root@localhost nginx-install-1.22.1]# pwd
/opt/software/middleware/nginx-install-1.22.1
[root@localhost nginx-install-1.22.1]# 
[root@localhost nginx-install-1.22.1]# 
[root@localhost nginx-install-1.22.1]# ./sbin/nginx -V
nginx version: nginx/1.22.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 
configure arguments: --prefix=/opt/software/middleware/nginx-install-1.22.1
[root@localhost nginx-install-1.22.1]# 
[root@localhost nginx-install-1.22.1]# cat html/virtual0*/index.html
<h1> 你好我是虚拟主机1</h1>
<h1> 你好我是虚拟主机2</h1>
在这里插入图片描述

解决中文乱码

在http段中添加chartset 设置字符集为 utf-8即可对下面的所有虚拟主机生效

在这里插入图片描述

相关文章:

Nginx专题-基于多网卡的主机配置

文章目录 Nginx 基于多网卡的主机实现一、虚拟机前置环境准备ifcfg-ens32配置文件的内容参考ifcfg-ens33配置文件的内容 二、案例演示修改nginx.conf配置文件解决中文乱码 Nginx 基于多网卡的主机实现 一、虚拟机前置环境准备 点击虚拟机右下角的 红色标框按钮&#xff0c;然后…...

4.2和4.3、MAC地址、IP地址、端口

计算机网络等相关知识可以去小林coding进行巩固&#xff08;点击前往&#xff09; 4.2和4.3、MAC地址、IP地址、端口 1.MAC地址的简介2.IP地址①IP地址简介②IP地址编址方式③A类IP地址④B类IP地址⑤C类IP地址⑥D类IP地址⑧子网掩码 3.端口①简介②端口类型 1.MAC地址的简介 …...

放弃 console.log 吧!用 Debugger 你能读懂各种源码

很多同学不知道为什么要用 debugger 来调试&#xff0c;console.log 不行么&#xff1f; 还有&#xff0c;会用 debugger 了&#xff0c;还是有很多代码看不懂&#xff0c;如何调试复杂源码呢&#xff1f; 这篇文章就来讲一下为什么要用这些调试工具&#xff1a; console.lo…...

epoll机制解析

一、epoll实现原理 1、实现原理 epoll通过3个方法来实现对句柄的监控操作&#xff0c;要深刻理解epoll&#xff0c;首先得了解epoll的三大关键要素&#xff1a;mmap、红黑树、链表。下面是epoll的框架图&#xff0c;如下&#xff1a; mmap epoll是通过内核与用户空间mmap同一块…...

基于 SpringBoot + Vue 实现的可视化拖拽编辑的大屏项目

今天给小伙伴们分享一个基于 SpringBoot Vue 实现的可视化拖拽编辑的大屏项目&#xff1b; 一、简介 这个是一个开源的一个BI平台&#xff0c;酷炫大屏展示&#xff0c;能随时随地掌控业务动态&#xff0c;让每个决策都有数据支撑。 多数据源支持&#xff0c;内置mysql、el…...

我们为什么要写作?

为什么要写书是一个很难回答的问题&#xff0c;因为从不同的角度&#xff0c;会有不同的答案。 最近ChatGPT很火&#xff01;诸事不决&#xff0c;先问问ChatGPT&#xff0c;看看它是怎么回答的。 ChatGPT给出的答案还是比较全&#xff0c;虽然没有“一本正经的胡说八道”&…...

设计模式:创建者模式 - 建造者模式

文章目录 1.概述2.结构3.实例4.优缺点5.使用场景6.模式扩展 1.概述 将一个复杂对象的构建与表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。 分离了部件的构造(由Builder来负责)和装配(由Director负责)。 从而可以构造出复杂的对象。这个模式适用于&#xff1a;某…...

String a = new String(“abc“); 创建了几个对象?String a = “abc“; 呢?

String a new String(“abc”); 创建了几个对象&#xff1f;String a “abc”; 呢&#xff1f; 答案&#xff1a;String a new String(“abc”); 创建了1个或2个对象&#xff1b;String a “abc”; 创建了0个或1个都对象 String a new String(“abc”); 创建过程 首先在…...

keepalived+nginx安装

欢迎使用ShowDoc&#xff01; 1、安装基础包&#xff1a; yum -y install libnl libnl-devel 2、上传包&#xff1a; tar -zxvf keepalived-2.0.20.tar.gz -C /data/imas/base_soft mkdir -p /data/imas/base_soft/keepalived cd /data/imas/base_soft/keepalived-2.0.20 .…...

硬盘格式化工具,强烈推荐这个!

案例&#xff1a;硬盘格式化工具推荐 【我的电脑已经用了好几年了&#xff0c;硬盘存储容量严重不够了&#xff0c;最近想把它格式化&#xff0c;但却不知道怎么操作&#xff0c;大家有什么比较好的硬盘格式化工具可以推荐吗&#xff1f;】 硬盘作为存储设备&#xff0c;我们…...

Python的异常捕获和处理

程序在运行过程当中&#xff0c;不可避免的会出现一些错误&#xff0c;比如&#xff1a;使用了没有赋值过的变量&#xff0c;使用了不存在的索引&#xff0c;一个数字除以0 …… 这些错误在程序中&#xff0c;我们称其为异常。 程序运行过程中&#xff0c;一旦出现异常将会导致…...

oracle学习之rownum和rowid

rownum先百度一波https://www.cnblogs.com/xfeiyun/p/16355165.html rownum是oracle特有的一个关键字。 对于基表&#xff0c;在insert记录时&#xff0c;oracle就按照insert的顺序&#xff0c;将rownum分配给每一行记录&#xff0c;因此在select一个基表的时候&#xff0c;r…...

为什么说过早优化是万恶之源?

Donald Knuth&#xff08;高德纳&#xff09;是一位计算机科学界的著名学者和计算机程序设计的先驱之一。他被誉为计算机科学的“圣经”《计算机程序设计艺术》的作者&#xff0c;提出了著名的“大O符号”来描述算法的时间复杂度和空间复杂度&#xff0c;开发了TeX系统用于排版…...

如何用 ModelScope 实现 “AI 换脸” 视频

前言 当下&#xff0c;视频内容火爆&#xff0c;带有争议性或反差大的换脸视频总能吸引人视线。虽然 AI 换脸在市面上已经流行了许久&#xff0c;相关制作工具或移动应用也是数不胜数。但是多数制作工具多数情况下不是会员就是收费&#xff0c;而且替换模板有限。以下在实战的角…...

怎么样成为一名Python工程师?到底要会哪些东西?你会了多少?

目录 重点&#xff1a;爬虫部分项目、源码展示python数据分析可视化大屏看板python爬虫爬取淘宝卤鸭货商品数据python游戏开发python自动化办公 重点&#xff1a; 1、做一名程序员&#xff0c;绝对要耐得住寂寞&#xff0c;并且要一直有点兴趣促进你学习。如果你完全没兴趣&am…...

项目前期1.0

今天是项目的第二天 昨天一顿迷茫,可恶 今天啥也不关先来点基本的构架 #include<queue>//队列 #define FALSE 0 #define TRUE 1 #define ERROR 0 #define OK 1 #define nocnect 999999//未链接的距离 #define maxplace 31//景区的观景点的最大个30数不要0下标的 #defi…...

MySQL语句执行耗时分析

MySQL语句执行耗时分析 MySQL Profile查看SQL执行各阶段耗时Performance Schema查看SQL执行各阶段耗时配置收集哪些用户的SQL执行信息开启SQL执行信息收集的相关特性执行目标SQL获取SQL执行的EVENT_ID获取SQL执行各阶段耗时 MySQL Profile查看SQL执行各阶段耗时 --开启SQL Pro…...

FVM链的Themis Pro(0x,f4) 5日IDO超百万美元,领Filecoin重回高点

交易一直是 DeFi 乃至web3领域最经久不衰的话题&#xff0c;也因此催生了众多优秀的去中心化协议&#xff0c;如 Uniswap 和 Curve。这些协议逐渐成为了整个系统的基石。 在永续合约方面&#xff0c;DYDX 的出现将 WEB2 时代的订单簿带回了web3。其链下交易的设计&#xff0c;仿…...

【PMP】优秀的项目经理如何做好范围管理?

范围管理是项目管理中的一个专用词汇&#xff0c;它的主要任务是界定项目包含且只包含所有需要完成的工作&#xff0c;并对项目其他管理工作起到指导作用&#xff0c;以保证顺利完成项目的所有过程。确定了项目范围&#xff0c;也就确定了项目的工作边界&#xff0c;明确了项目…...

【Linux】 密码相关。pwconv

密码相关。pwconv 在linux中&#xff0c;早期的用户密码&#xff08;经过加密&#xff09;存放在/etc/passwd文件之中&#xff0c;但是大多数的应用程序通常都需要读取这个文件&#xff0c;所以会造成一定的安全隐患 因此后来的linux&#xff08;centos&#xff09;系统将这个…...

开源笔记Memos与AI助手Copaw集成:打造自动化知识管理工作流

1. 项目概述&#xff1a;当开源笔记遇上AI助手最近在折腾个人知识管理工具&#xff0c;发现一个挺有意思的组合&#xff1a;Hailpeng的copaw-memos-integration。简单来说&#xff0c;它把两个独立但都很棒的工具给“焊”在了一起。一边是Memos&#xff0c;一个极简、开源、自部…...

基于CircuitPython与YouTube API的智能直播状态指示器制作指南

1. 项目概述与核心价值 如果你是一个内容创作者&#xff0c;或者你关注的某个频道正在直播&#xff0c;一个醒目、酷炫的“ON AIR”指示灯绝对能瞬间提升氛围感。今天要聊的这个项目&#xff0c;就是基于CircuitPython和YouTube API&#xff0c;自己动手打造一个能自动感知直播…...

LabVIEW Statechart进阶:从状态机到并发层次状态管理的思维跃迁

1. 项目概述&#xff1a;从状态机到Statechart的思维跃迁在LabVIEW的自动化测试、设备控制或复杂流程编排项目中&#xff0c;状态机&#xff08;State Machine&#xff09;几乎是每个工程师都会接触到的经典设计模式。它结构清晰&#xff0c;通过一个While循环、一个Case结构和…...

英雄联盟智能助手Seraphine:如何用3个核心功能提升你的排位胜率

英雄联盟智能助手Seraphine&#xff1a;如何用3个核心功能提升你的排位胜率 【免费下载链接】Seraphine 英雄联盟战绩查询工具 项目地址: https://gitcode.com/gh_mirrors/se/Seraphine 你是否曾在英雄联盟排位赛中因为BP阶段手忙脚乱而错失先机&#xff1f;是否因为不了…...

实测Taotoken多模型聚合调用的响应延迟与稳定性观感

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 实测Taotoken多模型聚合调用的响应延迟与稳定性观感 在项目开发中&#xff0c;我们常常需要接入不同的大模型来满足多样化的需求。…...

gprMax模拟结果看不懂?手把手教你用Paraview可视化不规则地质雷达模型

gprMax模拟结果可视化实战&#xff1a;用Paraview解析复杂地质雷达模型 地质雷达模拟完成后&#xff0c;面对海量的三维数据&#xff0c;许多研究者常陷入"数据在手&#xff0c;却无从下手"的困境。特别是当模型包含不规则异常体时&#xff0c;传统二维切片往往难以…...

告别系统默认驱动:手把手教你为沁恒CH38x/CH35x PCIe串口卡加载官方Linux驱动(含常见错误排查)

告别系统默认驱动&#xff1a;手把手教你为沁恒CH38x/CH35x PCIe串口卡加载官方Linux驱动&#xff08;含常见错误排查&#xff09; 在嵌入式开发和工业控制领域&#xff0c;串口通信的稳定性和功能完整性往往直接影响整个系统的可靠性。当使用沁恒CH38x/CH35x系列PCIe串口卡时…...

代码语义可视化架构的突破性实现:MultiHighlight如何将代码理解效率提升300%

代码语义可视化架构的突破性实现&#xff1a;MultiHighlight如何将代码理解效率提升300% 【免费下载链接】MultiHighlight Jetbrains IDE plugin: highlight identifiers with custom colors &#x1f3a8;&#x1f4a1; 项目地址: https://gitcode.com/gh_mirrors/mu/MultiH…...

通过taotoken审计日志追溯api调用详情与安全分析

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 通过Taotoken审计日志追溯API调用详情与安全分析 对于将大模型API集成到业务流程中的团队而言&#xff0c;API调用的可见性与可控性…...

突破存储限制:群晖DSM7下Synology Photos自定义文件夹挂载实战

1. 为什么需要自定义文件夹挂载 很多群晖用户升级到DSM7后都会遇到一个头疼的问题&#xff1a;Synology Photos默认把所有个人照片都存放在/home/Photos目录下&#xff0c;而这个目录实际上位于/homes共享文件夹中。随着照片数量不断增加&#xff0c;/homes所在存储空间很快就会…...