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

Nginx入门笔记

Nginx入门笔记

  • 一、Nginx基本概念
  • 二、代理
    • 1、正向代理
    • 2、反向代理
  • 三、准备工作
    • 1、CentOS 7安装nginx
      • (1). 安装必要的依赖
      • (2)下载nginx
      • (3)编译安装
      • (4)编译并安装 Nginx
      • (5)启动nginx
    • 2、安装tomcat
  • 四、反向代理与负载均衡
  • 五、动静分离
  • 六、高可用
      • (1)准备

一、Nginx基本概念

什么是NGINX:Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器 [13],同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,公开版本1.19.6发布于2020年12月15日。
        Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,有报告表明能支持50000个并发数,事实上nginx的并发能力在同类型的网页服务器中表现较好。
具体介绍可以自行查阅。

二、代理

1、正向代理

在这里插入图片描述
直接访问Google网站显而是不能访问通,我们需要一个能访问同的代理服务器,做过度。不能理解的话,我们可以换个直白的说法。
比如说你去租房租,你想直接找房东区租,但是呢,我又不知道房东的联系方式,这个时候,我们就需要找房产中介,他知道啊,然后就可以顺利的租到房子。(我的理解是:我想租房租,但是没有房屋主人的联系信息,找中介租到手,我知道我租的房子是谁的)。

2、反向代理

在这里插入图片描述
用户访问到一个网址,然后服务器将其转发给所访问的服务器。
我是这样理解:还是租房子,我找一个二房东租房,虽然我也能租到房子,但是我始终不知道这个房子是谁的(这比喻虽然有些不合理)。

三、准备工作

1、CentOS 7安装nginx

(1). 安装必要的依赖

首先,需要安装编译 Nginx 需要的依赖。打开终端并运行以下命令来安装这些依赖:

sudo yum install -y gcc-c++ make zlib-devel pcre-devel openssl-devel

gcc-c++ 和 make 是编译工具。
zlib-devel、pcre-devel 和 openssl-devel 是 Nginx 处理 HTTP 请求所需的库的开发包。
注:要是提示

Cannot find a valid baseurl for repo: base/7/x86_64

Yum是CentOS系统中用于安装、更新和删除软件包的重要工具。然而,由于CentOS 7官方支持已于2024年结束,许多依赖的仓库和镜像源也随之停止更新,导致Yum命令频繁出现错误,如“Could not resolve host: mirrorlist.centos.org”或“Unknown error”。

阿里云提供了稳定的CentOS镜像源,可以通过修改CentOS-Base.repo文件来使用阿里云源。简便的方法就是:

cd /etc/yum.repos.d/
curl -o CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
sudo yum clean all
sudo yum makecache

然后先 yum update 一下,在执行上方的安装操作。

(2)下载nginx

mkdir /opt/nginx
cd /opt/nginx
wget http://nginx.org/download/nginx-1.26.2.tar.gz
tar -zxvf nginx-1.26.2.tar.gz
cd nginx-1.26.2

(3)编译安装

在编译前,你可以使用 ./configure 脚本来定义安装选项,比如安装路径、启用的模块等。

./configure --prefix=/usr/local/nginx --with-http_ssl_module

这个命令将 Nginx 安装到 /usr/local/nginx 目录,并且启用了 HTTPS 支持。根据你的需求,你可能需要添加或删除 ./configure 脚本的选项。

(4)编译并安装 Nginx

make
make install

(5)启动nginx

./usr/local/nginx/sbin/nginx

查看启动状态
在这里插入图片描述

在这里插入图片描述
要是没能访问通,应该是没开放端口:
查看防火墙端口:

# 查看端口
firewall-cmd --list-ports
# 开放端口,这里建议开放80,8080,8081,9001等端口,接下来用得到
firewall-cmd --zone=public --add-port=80/tcp --permanent 
# 重启防火墙
firewall-cmd --reload

我们将它配置成全启动操作:

ln -s /opt/nginx/nginx-1.26.2/sbin/nginx /usr/local/bin/

2、安装tomcat

可以查看该文章:jdk和tomcat安装教程

四、反向代理与负载均衡

启动tomcat服务器,这里我把tomcat服务器配置了两个一个8080端口,一个8081端口
在这里插入图片描述
配置nginx.conf

cd /usr/local/nginx/conf/nginx.confupstream myserver {
# 还可以为其添加权重,这样就是用到了负载均衡,不加的话就是均分server localhost:8080 weight=5;server localhost:8081 weight=2;
}# 在http添加
server {listen 9001;server_name localhost;charset utf-8;# 示例一location ~ /nginx/ {proxy_pass http://localhost:8080;}# 示例二location / {
#               proxy_pass http://myserver;}
}

这里直接访问9001,就被反向到了各自的服务
在这里插入图片描述

五、动静分离

将静态资源放在一个服务器直接访问。

六、高可用

其中一台nginx服务器挂了另一个立刻接手。
在这里插入图片描述

(1)准备

两台服务器,分别安装nginx,keepalived
nginx前边已经安装过,不多说,安装keepalived

yum install keepalived -y

两台都安装上
修改keepalived配置文件:
在这里插入图片描述

vi keepalived.conf

在这里插入图片描述
第一个框先不说,第二个

字段说明
stateBACKUPBACKUP:从服务,MASTER:主服务
interfaceens33自己的网络,可以使用Ip addr查看
virtual_router_id51两个服务配置一至
priority90权值,主服务高一些,从服务低一些
virtual_ipaddress虚拟ip访问的IP两个服务配置一样(注意一点,我的当时直接写了一个导致无法方通,后来改了一个和我的服务器IP顺序的通行了)

第一个框中我们需要配置一个script文件:
nginx_check.sh

#!/bin/bash
A=`ps -C nginx -no-header |wc -l`
if [ $A -eq 0 ];then/usr/local/nginx/sbin/nginx # nginx安装路径sleep 2if [ `ps -C nggx -no-header |wc -l` -eq 0 ];thenkillall keepalivedfi
fi

做好这些就可以启动服务了
启动两个tomcat服务:

./startup.sh # 8080, 8081

启动nginx服务

nginx # ip1, ip2

启动keepalived

systemctl start keepalived.service

然后就可以直接使用虚拟ip访问了:
在这里插入图片描述
接下来我模拟主服务挂机了

nginx -s stop

再访问依旧可以访问。

相关文章:

Nginx入门笔记

Nginx入门笔记 一、Nginx基本概念二、代理1、正向代理2、反向代理 三、准备工作1、CentOS 7安装nginx(1). 安装必要的依赖(2)下载nginx(3)编译安装(4)编译并安装 Nginx(5)启动nginx …...

【单片机】实现一个简单的ADC滤波器

实现一个 ADC的滤波器,PT1 滤波器(也称为一阶低通滤波器),用于对输入信号进行滤波处理。 typedef struct PT1FilterSettings PT1FilterSettings; struct PT1FilterSettings {//! last Filter output valueuint32_t filtValOld;//…...

开源 vGPU 方案 HAMi 解析

开源 vGPU 方案 HAMi 一、k8s 环境下 GPU 资源管理的现状与问题 (一)资源感知与绑定 在 k8s 中,资源与节点紧密绑定。对于 GPU 资源,我们依赖 NVIDIA 提供的 device-plugin 来进行感知,并将其上报到 kube-apiserver…...

备考蓝桥杯:顺序表详解(静态顺序表,vector用法)

目录 1.顺序表的概念 2.静态顺序表的实现 总代码 3.stl库动态顺序表vector 测试代码 1.顺序表的概念 要理解顺序表,我们要先了解一下什么是线性表 线性表是n个具有相同特征的数据元素的序列 这就是一个线性表 a1是表头 a4是表尾 a2是a3的前驱 a3是a2的后继 空…...

OA系统如何做好DDOS防护

OA系统如何做好DDOS防护?在数字化办公蔚然成风的当下,OA(办公自动化)系统作为企业内部管理与协作的神经中枢,其安全性和稳定性直接关系到企业的日常运营效率、信息流通效率以及长远发展。OA系统不仅承载着企业内部的日…...

使用 Python 的 pyttsx3 库进行文本转语音

1. 什么是 pyttsx3? 1.1 pyttsx3 是一个 Python 库,它可以将文本转换为语音。与其他文本转语音库(如 gTTS)不同,pyttsx3 不依赖于网络服务,它使用本地的 TTS(Text-to-Speech)引擎&a…...

如何在Windows上编译OpenCV4.7.0

前言 ​ 参考:Win10 下编译 OpenCV 4.7.0详细全过程,包含xfeatures2d 这里在其基础上还出现了一些问题,仅供参考。 正文 一、环境 1、win10 2、cmake-gui 3、opencv4.7.0 4、VS2019 二、编译过程 1、下载需要的文件: 通…...

【玩转全栈】----Django连接MySQL

阅前先赞,养好习惯! 目录 1、ORM框架介绍 选择建议 2、安装mysqlclient 3、创建数据库 4、修改settings,连接数据库 5、对数据库进行操作 创建表 删除表 添加数据 删除数据 修改(更新)数据: 获取数据 1、OR…...

25/1/4 算法笔记<强化学习> 生成对抗模仿学习

基于生成对抗网络的模仿学习,假设存在一个专家智能体,其策略可以看成最优策略,我们就可以通过直接模仿这个专家在环境中交互的动作数据来训练一个策略,并不需要用到环境提供的奖励信息。 生成对抗模仿学习GAIL实质上就是模仿了专家…...

Flink维表方案选型

Iceberg Iceberg 采用全量预加载数据的方式将维度表数据全部加载到内存中进行关联,虽然可以避免频繁访问外部数据库,但对计算节点的内存消耗很高,不能适用于数量很大的维度表。除此之外,当 Iceberg 维表数据更新后,可…...

Oracle Database 23ai 新特性: UPDATE 和 DELETE 语句的直接联接

Oracle Database 23c 引入了一系列令人振奋的新特性,其中一项尤为引人注目的是对 UPDATE 和 DELETE 语句支持直接联接(Direct Join)。这一新功能极大地简化了复杂数据操作的实现,提升了性能,并为数据库开发者提供了更强…...

机器学习之随机森林算法实现和特征重要性排名可视化

随机森林算法实现和特征重要性排名可视化 目录 随机森林算法实现和特征重要性排名可视化1 随机森林算法1.1 概念1.2 主要特点1.3 优缺点1.4 步骤1.5 函数及参数1.5.1 函数导入1.5.2 参数 1.6 特征重要性排名 2 实际代码测试 1 随机森林算法 1.1 概念 是一种基于树模型的集成学…...

网络安全图谱以及溯源算法

​ 本文提出了一种网络攻击溯源框架&#xff0c;以及一种网络安全知识图谱&#xff0c;该图由六个部分组成&#xff0c;G <H&#xff0c;V&#xff0c;A&#xff0c;E&#xff0c;L&#xff0c;S&#xff0c;R>。 1|11.知识图 ​ 网络知识图由六个部分组成&#xff0c…...

单片机-外部中断

中断是指 CPU 在处理某一事件 A 时&#xff0c;发生了另一事件 B&#xff0c;请求 CPU 迅速去处理(中断发生)&#xff1b;CPU 暂时停止当前的工作(中断响应)&#xff0c; 转去处理事件 B(中断服务)&#xff1b;待 CPU 将事件 B 处理完毕后&#xff0c;再回到原来事件 A 被中断的…...

《解锁计算机视觉智慧:编程实现图片场景文字描述的开源宝藏》

《解锁计算机视觉智慧&#xff1a;编程实现图片场景文字描述的开源宝藏》 一、MiniGPT-4&#xff1a;小模型撬动大视觉理解&#xff08;一&#xff09;项目概览&#xff08;二&#xff09;核心亮点&#xff08;三&#xff09;上手体验 二、ClipCap-Chinese&#xff1a;中文场景…...

onLoad 生命周期函数是否执行取决于跳转的方式和小程序的页面栈管理机制

文章目录 1. 页面跳转方式2. 你的场景分析3. 页面生命周期4. 总结5. 建议 在微信小程序中&#xff0c;页面跳转时&#xff0c; onLoad 生命周期函数是否执行取决于跳转的方式和小程序的页面栈管理机制。以下是详细说明&#xff1a; 1. 页面跳转方式 微信小程序提供了多种页面…...

Visio 画阀门 符号 : 电动阀的画法

本篇文章介绍阀门&#xff0c;很多朋友在利用Visio绘画管道流程简图时&#xff0c;需要进行阀门符号的绘画&#xff0c;而Visio提供的阀门符号种类并不是很齐全。 本篇文章给出电动阀的画法&#xff1a; 下图是液动阀的符号&#xff1a; 首先&#xff0c;找到“更多形状”中的…...

OOM排查思路

K8S 容器的云原生生态&#xff0c;改变了服务的交付方式&#xff0c;自愈能力和自动扩缩等功能简直不要太好用。 有好的地方咱要夸&#xff0c;不好的地方咱也要说&#xff0c;真正的业务是部署于容器内部&#xff0c;而容器之外&#xff0c;又有一逻辑层 Pod 。 对于容器和…...

《Spring Framework实战》10:4.1.4.2.详细的依赖和配置

欢迎观看《Spring Framework实战》视频教程 集合 <list/>、<set/>、<map/>和<props/>元素分别设置Java集合类型list、set、map和properties的属性和参数。以下示例显示了如何使用它们&#xff1a; <bean id"moreComplexObject" class&qu…...

网络安全-XSS跨站脚本攻击(基础篇)

漏洞扫描的原理 1.跨站脚本攻击介绍 xss跨站脚本攻击&#xff1a; xSS 全称&#xff08;Cross site Scripting &#xff09;跨站脚本攻击&#xff0c;是最常见的Web应用程序安全漏洞之一&#xff0c;位于OWASP top 10 2013/2017年度分别为第三名和第七名&#xff0c;XSS是指攻…...

YOLO+SAM工业缺陷检测:从理论到落地的完整方案

YOLOSAM工业缺陷检测&#xff1a;从理论到落地的完整方案一、痛点 PCB质检中&#xff0c;人工标注缺陷边界8分钟/张。YOLO框不准&#xff0c;SAM对工业缺陷水土不服。 二、解决方案 LoRA微调SAM&#xff1a;只改2%参数&#xff0c;速度3倍提升&#xff0c;显存24GB→8GB。 Dice…...

旺店通与轻易云集成平台的无缝数据对接方案

数据源系统&#xff1a;旺店通企业奇门旺店通企业奇门是慧策旗下核心的智能零售解决方案&#xff0c;提供从订单管理到仓储物流的全链路服务。其特点包括&#xff1a;一体化智能零售平台&#xff0c;覆盖电商经营全流程打破数据孤岛&#xff0c;实现跨系统数据互通AI驱动的智能…...

三菱FX3U六轴标准程序:实现3轴本体控制与3个1PG定位模块,轴点动控制、回零控制及定位功能...

三菱FX3U六轴标准程序&#xff0c;程序包含本体3轴控制&#xff0c;扩展3个1PG定位模块,一共六轴。 程序有轴点动控制&#xff0c;回零控制&#xff0c;相对定位&#xff0c;绝对定位。 另有气缸数个&#xff0c;一个大是DD马达控制的转盘&#xff0c;整个是转盘多工位流水作业…...

使用Spring AI Alibaba构建智能体Agent竟

背景 在软件开发的漫长旅途中&#xff0c;"构建"这个词往往让人又爱又恨。爱的是&#xff0c;一键点击&#xff0c;代码变成产品&#xff0c;那是程序员最迷人的时刻&#xff1b;恨的是&#xff0c;维护那一堆乱糟糟的构建脚本&#xff0c;简直是噩梦。 在很多项目中…...

基于SpringBoot + Vue的车辆尾气检测排放系统(双端 + 数据可视化大屏)

文章目录前言一、详细操作演示视频二、具体实现截图三、技术栈1.前端-Vue.js2.后端-SpringBoot3.数据库-MySQL4.系统架构-B/S四、系统测试1.系统测试概述2.系统功能测试3.系统测试结论五、项目代码参考六、数据库代码参考七、项目论文示例结语前言 &#x1f49b;博主介绍&#…...

Http4s性能调优:10个提升HTTP服务响应速度的关键技巧

Http4s性能调优&#xff1a;10个提升HTTP服务响应速度的关键技巧 【免费下载链接】http4s A minimal, idiomatic Scala interface for HTTP 项目地址: https://gitcode.com/gh_mirrors/ht/http4s Http4s作为一款极简且符合Scala风格的HTTP接口工具&#xff0c;其性能优化…...

从碎片到可信:OpenClaw的任务治理之路

网罗开发 &#xff08;小红书、快手、视频号同名&#xff09; 大家好&#xff0c;我是 展菲&#xff0c;目前在上市企业从事人工智能项目研发管理工作&#xff0c;平时热衷于分享各种编程领域的软硬技能知识以及前沿技术&#xff0c;包括iOS、前端、Harmony OS、Java、Python等…...

从海思Hi35xx到瑞芯微RV1126:手把手教你用RKMEDIA框架快速移植IPC应用(附RKNN推理集成避坑点)

从海思Hi35xx到瑞芯微RV1126&#xff1a;RKMEDIA框架迁移实战与RKNN集成指南 去年接手一个智能安防项目时&#xff0c;客户突然要求将原本基于海思Hi3516DV300的方案切换到瑞芯微RV1126平台。面对两周内完成算法迁移的"死亡线"&#xff0c;RKMEDIA框架的模块化设计成…...

Wux Weapp 性能优化终极指南:如何减少包体积提升加载速度

Wux Weapp 性能优化终极指南&#xff1a;如何减少包体积提升加载速度 【免费下载链接】wux-weapp :dog: 一套组件化、可复用、易扩展的微信小程序 UI 组件库 项目地址: https://gitcode.com/gh_mirrors/wu/wux-weapp Wux Weapp 是一套组件化、可复用、易扩展的微信小程序…...

【权威实测】FastAPI 2.0 + streaming-ai-plugin v0.8.2实测吞吐达14,200 RPS:从PyPI下载、wheel编译到uvloop绑定的完整安装流水线

第一章&#xff1a;FastAPI 2.0 streaming-ai-plugin 的技术定位与性能价值FastAPI 2.0 正式引入原生异步流式响应支持&#xff08;StreamingResponse 重构与 AsyncGenerator 语义强化&#xff09;&#xff0c;配合 streaming-ai-plugin&#xff08;v1.3&#xff09;构建的标准…...