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.hqwc.cn/news/681698.html

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

相关文章

TMS320F280049 CLB模块--总览(0)

CLB模块是可配置的逻辑块,和FPGA的CLB有些不同。 下图是CLB模块在系统中的交互,图中CLB XBAR和TILE是CLB。从049中有4个CLB,也就是TILE1-4。 下图是CPU和CLB交互的示意图。 下图是CLB的时钟。 参考文档: TMS320F28004x Real-Tim…

【C++】零钱兑换的始端---柠檬水找零

欢迎来CILMY23的博客 本篇主题为 零钱兑换的始端---柠檬水找零 个人主页:CILMY23-CSDN博客 个人专栏系列: Python | C | C语言 | 数据结构与算法 感谢观看,支持的可以给个一键三连,点赞关注收藏。 前言: 柠檬水找…

万兆以太网MAC设计(13)主机与FPGA之间进行PING

文章目录 前言:一、ICMP校验和计算二、上板效果1、终端命令行1、wireshark捕捉 前言: 在上板尝试进行PING操作的时候,发现一直是请求超时的情况,结果排查发现是首部校验和没有计算的问题。在UDP层,我们不进行校验和是…

ROS 2边学边练(45)-- 构建一个能动的机器人模型

前言 在上篇中我们搭建了一个机器人模型(其由各个关节(joint)和连杆(link)组成),此篇我们会通过设置关节类型来实现机器人的活动。 在ROS中,关节一般有无限旋转(continuous),有限旋转…

【每日力扣】543. 二叉树的直径与101. 对称二叉树

🔥 个人主页: 黑洞晓威 😀你不必等到非常厉害,才敢开始,你需要开始,才会变的非常厉害 543. 二叉树的直径 给你一棵二叉树的根节点,返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的…

芋道源码的Springboot 项目打包,配置和依赖包分开

Springboot 项目,把依赖包和开发的应用都打在一个jar 里很简单,但有个问题是,修改点东西就要再次全量更新。 这里介绍如何用assembly 来实现不打依赖包。 1、 在主模块中,需要引入 assembly.xml配置: src/main/asse…

DUX 主题 版本:8.2 WordPress主题优化版

主题下载地址:DUX 主题优化版.zip 支持夜间模式、快讯、专题、百度收录、人机验证、多级分类筛选,适用于垂直站点、科技博客、个人站,扁平化设计、简洁白色、超多功能配置、会员中心、直达链接、自动缩略图

如何通过wifi网络将串口数据发送到多个设备

摘要:当lora电台的速率无法满足高速传输时,可以考虑用“串口服务器”。本文介绍一下如何使用TP-LINK的TL-CPE300D实现一对多的数据发送。 当前也有使用lora电台的,但是lora电台支持的速率有限,可能最大支持到9600,甚至…

python数据分析所需要了解的结构基础

Python语言基础——结构基础 前言一、列表列表的介绍列表的语法示例注意要点符号元素切片运算符示例 二、字典字典的介绍字典的特点字典的语法 三、元组元组的介绍元组的语法示例 四、字符串字符串的介绍字符串的语法 五、操作运算符算术运算符赋值运算符比较运算符逻辑运算符位…

CMake创建跨平台OPenGL工程(学习笔记)

一、跨平台环境基本配置 1、环境搭建 1)linux OpenGL环境搭建参考:ubuntu18.04 OpenGL开发(显示YUV)_ubuntu opengl-CSDN博客 https://blog.51cto.com/cerana/6433535 2)windows下环境搭建 OpenGLVisual Studio20…

TensorFlow、pytorch和python对应的版本关系

安装深度学习框架的时候需要考虑版本的关系,不然装了用不了就尴尬了。 深度学习首先得问题就是用CPU跑,还是GPU跑。。当然有英伟达显卡的都想用GPU跑,不然买显卡是做啥、、GPU跑得多块,一下就训练完了。但是有的同学没得gpu&…

操作系统——进程控制

创建进程 fork fork是一个系统调用函数,用来创建子进程,通过多个执行流完成任务。子进程和父进程共用一份代码,子进程数据使用写时拷贝,即子进程数据在创建的时候和父进程相同,但是当要修改数据的时候,子进…