nginx的应用部署nginx

这里写目录标题

  • nginx
      • nginx的优点
      • 什么是集群
      • 常见的集群
      • 什么是正向代理、反向代理、透明代理
        • 常见的代理技术
        • 正向代理
        • 反向代理
        • 透明代理
    • nginx部署

nginx

nginx(发音同enginex)是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行。
nginx作为负载均衡服务器:nginx既可在内部直接支持和PHP程序对外进行服务,也可支持作为HTTP代理服务器对外进行服务。

nginx的优点

高并发连接:官方测试能够支撑5万并发连接,在实际生产环境中跑到2-3万并发连接数
内存消耗少
配置文件非常简单:风格跟程序一样通俗易懂
成本低廉:nginx为开源软件,可以免费使用。
支持Rewrite重写规则:能够根据域名、URL的不同,将HTTP请求分到不同的后端服务器群组
内置的健康检查功能:如果NginxProxy后端的某台Web服务器宕机了,不会影响前端访问
节省带宽:支持GZIP压缩,可以添加浏览器本地缓存的Header头
稳定性高:用于反向代理,宕机的概率微乎其微
模块化设计:模块可以动态编译 外围支持好:文档全,二次开发和模块较多
支持热部署:可以不停机重载配置文件 支持事件驱动、AIO(AsyncIO,异步IO)、mmap(Memory Map,内存映射)等性能优化

什么是集群

集群:就是一组相互独立的计算机,通过单一的系统模式进行管理,每个集群节点(即集群中的每台计算机)都是运行各自服务的独立服务器。这些服务器之间可以彼此通信,它们作为整体向用户提供一组网络资源,当用户请求集群系统时,集群给用户的感觉就是一个单独的服务器,而实际上用户请求的是一组集群服务器。

简单来讲就是指多台服务器合作做同一件事

举个例子:

像常见的,我们打开谷歌,百度的搜索页面,它们的页面看着很简单,觉得可以很轻松的制作出一样的网页,但实际上,这个页面背后是成百上千台服务器也就是集群协同工作的结果。

常见的集群

负载均衡集群

​ 硬件:F5

​ 软件:nginx、lvs、haproxy、slb

高可用集群

​ 软件: keepalived、heartbeat、slb

高性能集群

什么是正向代理、反向代理、透明代理

常见的代理技术
  • 正向代理:Forward Proxy
  • 反向代理:Reverse proxy
  • 透明代理:Transparent proxy

区别:

  • 正向代理代理的对象是客户端,反向代理代理的对象是服务端
正向代理

一般情况下,如果没有特别说明,代理技术默认说的是正向代理。正向代理由如下两种场景:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

正向代理是一个位于客户端【User A】原始服务器【Origin Server】之间的代理服务器【Forward Proxy】,为了从原始服务器取得内容,客户端代理服务器发送一个请求并指定目标Origin Server,然后代理服务器Origin Server转交请求并将获得的内容返回给客户端

代理服务器可能在内网也可以在外网。一般客户端需要特殊的配置才能使用。
作用

  1. 客户端【User A】无法直接访问原始服务器【Origin Server】
  2. 加速访问原始服务器【Origin Server】
  3. Cache作用
  4. 客户端访问授权
  5. 隐藏访问者的行踪

软件

  1. 科学上网工具 shadowsocks
  2. squid
  3. trafficserver
反向代理

反向代理正好与正向代理相反,对于客户端而言代理服务器就像是原始服务器,并且客户端不需要进行任何特别的设置。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

客户端【User A】反向代理【Reverse Proxy】发送请求,接着反向代理将判断向哪个原始服务器【Origin Server】转交请求,并将获得的内容返回给客户端。

作用

  1. 保护和隐藏原始资源服务器
  2. 负载均衡,CDN实现原理

软件

  1. nginx
  2. trafficserver
透明代理

透明代理将拦截客户端【User A】发送的请求,拦截后自己代为访问原始服务器【Origin Server】,获取响应结果后再由透明代理交给客户端。一般公司内的上网行为管理软件就是透明代理。透明代理客户端根本不需要知道有代理服务器的存在。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

nginx部署

安装nginx:https://nginx.org/en/download.html

安装nginx
关闭防火墙创建系统用户nginx
[root@zyq ~]#: useradd -r -M -s /sbin/nologin nginx
[root@zyq ~]#: id nginx
uid=991(nginx) gid=991(nginx) groups=991(nginx)安装编译工具
[root@zyq ~]#: yum -y install make gcc gcc-c++安装依赖包
[root@zyq ~]#: yum -y install pcre-devel openssl openssl-devel gd-devel创建日志存放目录
[root@zyq ~]#: mkdir -p /var/log/nginx
[root@zyq ~]#: chown -R nginx.nginx /var/log/nginx下载nginx
[root@zyq ~]#: wget https://nginx.org/download/nginx-1.24.0.tar.gz
--2024-01-15 15:39:30--  https://nginx.org/download/nginx-1.24.0.tar.gz
Resolving nginx.org (nginx.org)... 52.58.199.22, 3.125.197.172, 2a05:d014:edb:5702::6, ...
Connecting to nginx.org (nginx.org)|52.58.199.22|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1112471 (1.1M) [application/octet-stream]
Saving to: ‘nginx-1.24.0.tar.gz’nginx-1.24.0.tar.gz    100%[=========================>]   1.06M   441KB/s    in 2.5s    2024-01-15 15:39:33 (441 KB/s) - ‘nginx-1.24.0.tar.gz’ saved [1112471/1112471][root@zyq ~]#: ls
anaconda-ks.cfg  nginx-1.24.0.tar.gz
[root@zyq ~]#: 
[root@zyq ~]#: tar xf nginx-1.24.0.tar.gz 
[root@zyq ~]#: cd  nginx-1.24.0/
[root@zyq nginx-1.24.0]#: ls
auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src编译安装
[root@zyq nginx-1.24.0]#: ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-debug \
--with-http_ssl_module \
--with-http_realip_module \
--with-http_image_filter_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--http-log-path=/var/log/nginx/access.log \
--error-log-path=/var/log/nginx/error.log
[root@zyq ~]#: make && make install[root@zyq ~]#: cd /usr/local/
[root@zyq local]#: ls
bin  etc  games  include  lib  lib64  libexec  nginx  sbin  share  src
[root@zyq local]#: ls nginx/
conf  html  logs  sbin配置环境变量
[root@zyq ~]#: echo 'export PATH=/usr/local/nginx/sbin:$PATH' > /etc/profile.d/nginx.sh
[root@zyq ~]#: source /etc/profile.d/nginx.sh 
[root@zyq ~]#: which nginx
/usr/local/nginx/sbin/nginx启动nginx
[root@zyq ~]#: nginx
[root@zyq ~]#: ss -antl
State     Recv-Q    Send-Q       Local Address:Port       Peer Address:Port   Process    
LISTEN    0         128                0.0.0.0:22              0.0.0.0:*                 
LISTEN    0         511                0.0.0.0:80              0.0.0.0:*                 
LISTEN    0         128                   [::]:22                 [::]:*                服务控制方式,使用nginx命令-t  //检查配置文件语法-v  //输出nginx的版本-c  //指定配置文件的路径-s  //发送服务控制信号,可选值有{stop|quit|reopen|reload}设置开机自启
[root@zyq ~]#: cp /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/nginx.service
[root@zyq ~]#: vim /usr/lib/systemd/system/nginx.service
[root@zyq ~]#: cat /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx server daemon
After=network.target sshd-keygen.target[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecReload=/bin/kill -HUP $MAINPID[Install]
WantedBy=multi-user.target
[root@zyq ~]#: systemctl daemon-reload 
[root@zyq ~]#: systemctl status nginx
○ nginx.service - nginx server daemonLoaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: dis>Active: inactive (dead)[root@zyq ~]#: nginx -s stop 
[root@zyq ~]#: ss -antl
State     Recv-Q    Send-Q       Local Address:Port       Peer Address:Port   Process    
LISTEN    0         128                0.0.0.0:22              0.0.0.0:*                 
LISTEN    0         128                   [::]:22                 [::]:*                 
[root@zyq ~]#: systemctl enable --now nginx.service 
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.
[root@zyq ~]#: ss -antl
State     Recv-Q    Send-Q       Local Address:Port       Peer Address:Port   Process    
LISTEN    0         128                0.0.0.0:22              0.0.0.0:*                 
LISTEN    0         511                0.0.0.0:80              0.0.0.0:*                 
LISTEN    0         128                   [::]:22                 [::]:*           

在这里插入图片描述

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

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

相关文章

「Java开发指南」如何用MyEclipse搭建GWT 2.1和Spring?(一)

本教程将指导您如何生成一个可运行的Google Web Toolkit (GWT) 2.1和Spring应用程序,该应用程序为域模型实现了CRUD应用程序模式。在本教程中,您将学习如何: 安装Google Eclipse插件为GWT配置一个项目搭建从数据库表到一个现有的项目GWT编译…

学习前端第二十九天(可迭代对象,映射和解构【弱】,Object.keys values)

一、可迭代对象 1、Symbol.iterator方法,使对象可迭代 [Symbol.iterator]() {let i 5;return {next() {i--;return { done: !i, value: i }}}} next()方法返回的结果的格式必须是{done:Boolean,value:a…

有关while((c=getchar())!=\n)和while((ch=getchar()!=EOF))

Ⅰ 详解 while((cgetchar())!\n) \n是回车符, ch getchar()从键盘输入一个字符, 整句话的意思就是,当从键盘输入回车符时,循环结束 while((chgetchar()!EOF)) 1.分别介绍getchar和EOF int getchar(void) 使用键盘输入字符&a…

RocketMq 实战总结

1.org.apache.rocketmq.remoting.exception.RemotingTooMuchRequestException: sendDefaultImpl call timeout 大量执行批量发送操作时偶现该问题,通过调整增加发送超时时间解决 2.consumeThreadMin(消费者最小线程数) consumeThreadMax(消费者最大线程数) 由于mq使…

【kettle015】kettle访问Hive数据仓库并处理数据至execl文件(最近完善中)

1.一直以来想写下基于kettle的系列文章,作为较火的数据ETL工具,也是日常项目开发中常用的一款工具,最近刚好挤时间梳理、总结下这块儿的知识体系。 2.熟悉、梳理、总结下Hive数据仓库相关知识体系 3.欢迎批评指正,跪谢一键三连&am…

c#读取hex文件方法,相对来说比较清楚

Hex文件解读_c#读取hex文件-CSDN博客 https://wenku.csdn.net/answer/d67f30cf834c435ca37c3d1ef5e78a62?ops_request_misc%257B%2522request%255Fid%2522%253A%2522171498156816800227423661%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&…

C++ 模拟实现 priority_queue(优先队列)

目录 一,优先队列简介 二,priority_queue 的内部实现原理 三,模拟实现 priority_queue 1,模板参数与数据结构 2,构造 3,辅助功能(堆的有序化,建立堆) 4&#xff0…

AcWing 4993 FEB

4993. FEB - AcWing题库 大佬亲笔 将原串分成三段&#xff1a; FFF|E.....B|FFF 先合并中间段&#xff0c;再合并两边的段 #include <iostream> #include <cstring> #include <algorithm> #include <string> #include <queue&g…

STM32--LoRa通信模块

ATK-LORA-01_V3.0(V3.0 是版本号&#xff0c;型号是 ATK-LORA-01 &#xff0c;下面均以 ATK-LORA-01表示该产品) 是 ALIENTEK 推出的一款体积小、微功率、低功耗、高性能远距离 LORA 无线串口模块。模块设计是采用高效的 ISM 频段射频 SX1278 扩频芯片&#xff0c;模…

GaussianBody:基于3D高斯散射的服装人体重建

GaussianBody: Clothed Human Reconstruction via 3d Gaussian Splatting GaussianBody&#xff1a;基于3D高斯散射的服装人体重建 Mengtian Li1,2,3, Shengxiang Yao1, Zhifeng Xie1,3,2, Keyu Chen4,2, Yu-Gang Jiang2 李梦田 1,2,3 、姚胜祥 1 、谢志峰 1,3, 2 、陈科宇 4, …

TriCore: 从RTOS内核的角度看CSA

今天尝试从RTOS内核的角度来看看 TriCore 的 CSA。 CSA的细节信息可以参考前一篇文章 TriCore User Manual 笔记 1-CSDN博客 CSA 的全称是 Context Save Area&#xff0c;顾名思义就是专门用来保存上下文的一块存储区域。 既然是上下文使用&#xff0c;那必然要求低延迟&…

Linux域名解析

1.hosts:windows c盘下面 Linux: /etc/hosts 作用:实现名字解析&#xff0c;主要为本地主机名、集群节点提供快速解析。平面式结构&#xff0c;集中式数据库。 缺点:不便于查询更新 2.DNS:域名系统 作用:实现名字解析(分层性&#xff0c;层次性) FQDN:完全合格域名/全称域…

开源离线AI笔记应用

前言 Reor 是一款人工智能驱动的桌面笔记应用程序&#xff0c;它能自动链接相关笔记、回答笔记中的问题并提供语义搜索。所有内容都存储在本地&#xff0c;支持 Windows、Linux 和 MacOS。Reor 站在 Ollama、Transformers.js 和 LanceDB 等巨头的肩膀上&#xff0c;使 LLM 和嵌…

基于Springboot的校园悬赏任务平台(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的校园悬赏任务平台&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构…

ANSI转义序列

一、ASCII码 ASCII&#xff08;American Standard Code for Information Interchange&#xff0c;美国信息交换标准代码&#xff09;最初的设计是一个7位的字符编码&#xff0c;使用了从0到127的数字来表示字符。这意味着它总共可以表示128个不同的字符。这包括了英文大小写字…

如何从未入库的gerrit中撤销一个文件

用一个例子说明 比如有一个提交里面的default.xml的修改没有必要&#xff0c;需要从未入库的gerrit中移除 步骤如下&#xff1a; 1.做reset操作 git reset HEAD^ packages/SettingsProvider/res/values/defaults.xml 2.做checkout操作 git checkout packages/SettingsProv…

大模型日报2024-05-08

大模型日报 2024-05-08 大模型资讯 微软据报道正在开发拥有5000亿参数的MAI-1人工智能模型 摘要: 据The Information今日报道&#xff0c;微软公司正在开发一个名为MAI-1的大型语言模型&#xff0c;该模型的参数量约为5000亿。这标志着微软在人工智能领域的又一重大进展&#x…

FileLink文件摆渡技术解析:如何实现数据的安全摆渡与隔离

文件摆渡系统&#xff0c;这一现代科技名词&#xff0c;蕴含着深刻的科技内涵和广泛的应用前景。简而言之&#xff0c;文件摆渡系统是一种高效、安全的文件传输工具&#xff0c;它能够在不同的网络环境之间实现文件的快速、稳定传输。在今天的数字化时代&#xff0c;随着数据量…

压缩机继电器EOCRDS-30NY7Q升级后型号:EOCRDS3-30S

EOCR-DS3系列型号&#xff1a; EOCRDS3-05S EOCRDS-05S EOCRDS1-05S EOCRDS3-30S EOCRDS-30S EOCRDS1-30S EOCRDS3-60S EOCRDS-60S EOCRDS1-60S EOCRDS3-05W EOCRDS-05W EOCRDS1-05W EOCRDS3-30W EOCRDS-30W EOCRDS1-30W EOCRDS3-60W EOCRDS-60W EOCRDS1-60W EOCR-DS3T-…

【递归、回溯和剪枝】二叉树中的深搜

⼆叉树中的深搜深度优先遍历&#xff08;DFS&#xff0c;全称为 Depth First Traversal&#xff09;&#xff0c;是我们树或者图这样的数据结构中常⽤的⼀种遍历算法。这个算法会尽可能深的搜索树或者图的分⽀&#xff0c;直到⼀条路径上的所有节点都被遍历完毕&#xff0c;然后…