• 高性能HTTP和反向代理Web服务器 - Nginx


    Nginx是一个高性能的HTTP服务器反向代理的web服务器,同时也提供IMAP,POP3,SMTP服务
    特点:占用内存少,并发能力强,安装运行维护简单

    一、安装

    1.1.Windows安装

    nginx/Windows-1.18.0,可以选择下载Stable version(稳定版本)
    解压即可使用:注意解压目录不要带有中文
    配置文件:conf/nginx.conf
    运行访问:在安装目录cmd打开命令窗口,执行nginx.exe命令,浏览器输入http://localhost/访问

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    1.2.Linux安装

    nginx/Windows-1.18.0,下载Stable version(稳定版本)
    将下载好的文件上传到linux服务器上,这里选择使用虚拟机Vmware+centos7,上传工具使用finalshell

    在这里插入图片描述

    ls :查看nginx-linux-1.18.0.tar.gz是否上传成功
    tar -zxvf nginx-linux-1.18.0.tar.gz:解压文件
    cd nginx-linux-1.18.0:进入文件夹
    ./configure:执行配置文件
    make:编译
    如果在make时遇到“make: *** 没有规则可以创建“default”需要的目标“build”。 停止。”问题,那你大概率使用的不是root用户,要么换root用户,要么使用普通用户执行以下命令
    yum -y install gcc openssl openssl-devel pcre-devel zlib zlib-devel
    执行完命令后再次执行./configure和make命令
    make install
    whereis nginx:查看nginx所在目录
    cd /usr/local/nginx:进入nginx目录
    ls -l:会看见一个sbin,执行文件放在里面
    cd sbin/:进入sbin
    ./nginx:启动
    cat nginx.conf:查看配置文件
    ipconfig:查看linux的ip
    浏览器访问ip/80端口:http://192.168.44.132/80
    如果不可以:1.查看80端口的防火墙有没有开 2.看远程服务器(阿里云、腾讯云)安全组的80端口也放开

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

    1.3.常用命令

    cd /usr/local/nginx/sbin 进入执行文件目录 cd /usr/local/nginx/conf/nginx.conf 修改配置文件
    ./nginx:启动
    ./nginx -s stop:停止
    ./nginx -s quit:安全退出
    ./nginx -s reload:重新加载配置文件(每次修改配置文件后都要执行)
    ps aux|grep nginx:查看nginx进程

    二、动静分离

    动静分离(静态代理),Nginx是一个HTTP服务器,可以将服务器上的静态文件通过HTTP协议展现给客户端
    软件开发中,一些请求是需要后台处理的,有些请求静态文件(css、html、jpg,js等文件)的是不需要经过后台处理的,让动态网站里面的动态网页根据一些规则将不变的资源和经常变的资源跟开,动静资源做好拆分后,就可以根据静态资源的特点将其做缓存操作,提高资源响应速度。

    三、反向代理

    3.1.正向代理

    正向代理:代理客户端

    在这里插入图片描述

    3.2.反向代理

    反向代理:代理服务器,无感知访问服务器资源,使服务部署上线更方便

    在这里插入图片描述

    四、负载均衡

    负载均衡的两种策略:内置策略(轮询、加权轮询、Ip hash),扩展策略(天马行空)

    4.1.轮询

    有9个请求,代理3台服务器,1,4,7请求会转发到第一台服务器,2,5,8请求会转发到第二台服务器,3,6,7请求会转发到第三台服务器

    在这里插入图片描述

    4.2.加权轮询

    设置服务器的权重,性能高的权重高,大部分请求都会转发到权重高的服务器上,很少一部分转发到权重低的服务器

    在这里插入图片描述

    4.3.Ip hash

    主要来解决session不共享的问题:iphash对客户端请求的ip进行hash操作,根据hash结果将同一个客户端ip的请求分发给同一台服务器进行处理
    但如果某台服务器挂了,session任然会丢失,所以不建议使用nginx实现session共享,比较常用的是Redis实现session共享

    在这里插入图片描述

    五、限流

    六、缓存

    七、黑白名单

  • 相关阅读:
    基于数组结构刷题
    23. 图论 - 图的由来和构成
    python之字符串及操作相关知识
    Ocelot简易教程目录
    Linux操作系统基础指令II
    JVMRandom不可设置种子|问题追溯|源码追溯
    MySQL基础练习题
    HTML期末作业 蛋糕bootstrap响应式网站html+css+javascript+jquery+bootstarp
    新型基础测绘与实景三维中国建设技术文件【4】基础地理实体数据元数据
    【Spring Cloud】项目优化:如何确保Redis延迟队列中数据能够被正确消费
  • 原文地址:https://blog.csdn.net/weixin_43908649/article/details/128074606