• Nginx


     nginx介绍

    Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。
    其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
    Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

    特点: 占有内存少 不超过2M ,并发能力强 3-5万次/秒

     Nginx的安装

    注意事项: Nginx安装目录 不要装到C盘,并且路径不要有中文 空格 及系统目录.

    关于nginx 进程项说明

    内存占用大的是主进程.
    在这里插入图片描述
    手动关闭Nginx 方式:先关闭守护进程,之后关闭主进程

    关于nginx 操作命令

    命令执行位置: 执行命令时需要在nginx的根目录中执行.

    启动命令 start nginx

    重启命令 nginx -s reload

    关闭命令 nginx -s stop

    关于Nginx反向代理配置

    http {
        #http协议内,可以有多个服务 每个服务就是一个server
        server {
            # 监听用户访问的端口   默认是80端口
            listen       80;   
            # server_name 服务名称  浏览器的访问域名
            server_name  localhost;
            #配置反向代理的实现  / 拦截所有的用户请求
            location / {
                # root代表关键字   代表反向代理的目录
                root   html;
                # index 代表默认的访问页面
                index  index.html index.htm;
            }
          }
       }

    1.4 配置nginx图片服务器

    1.4.1 反向代理说明

    1.url地址: http://image.jt.com/2020/08/07/cc10f60491234317adf800aeafc6af1f.png
    2.本地磁盘地址: D:JT-SOFTimages/2020/08/07/cc10f60491234317adf800aeafc6af1f.png
    目的:通过域名访问真实的磁盘地址.
    可以利用nginx的反向代理完成配置.

    1.4.2 编辑Nginx配置文件

    现象: nginx -s reload指令 可以展现报错信息.
    start nginx 无论启动是否成功 ,都不能展现报错.

    习惯: 启动nginx之后,最好执行重启指令.

    # 配置图片服务器
        server {
            listen 80;
            server_name image.jt.com;
    
            ##通过网址转向指定的目录  注意/的写法
            location / {
            
                root D:/JT-SOFT/images;
            }
        }

    1.4.3 网络资源访问请求路径

    说明:通过hosts文件可以配置域名与IP地址的映射.那么在本机中可以实现反向代理,如果将来想要在公网中进行反向代理.则必须购买域名.

     

     修改HOSTS文件

    文件路劲

    利用工具软件管理HOSTS文件:

    京淘配置
    #左侧写IP地址 右侧写域名 中间使用空格分隔 配置内容
    127.0.0.1 image.jt.com
    127.0.0.1 manager.jt.com
    127.0.0.1 www.jt.com
    127.0.0.1 sso.jt.com

    如图

     然后点击右下角绿色图标

     有时会报一个错误

     解决方案

    关于Nginx图片回显异常说明

    1检查HOSTS文件配置正常.

    #左侧写IP地址   右侧写域名  中间使用空格分隔
    127.0.0.1   image.jt.com
    127.0.0.1   manager.jt.com
    127.0.0.1   www.jt.com
    127.0.0.1   sso.jt.com

    2检查NGINX配置文件是否正确

    # 配置图片服务器
        server {
            listen 80;
            server_name image.jt.com;
    
            ##通过网址转向指定的目录  注意/的写法
            location / {
                     #需要与配置文件的写的路劲一样
                root D:/JT-SOFT/images;
            }
        }

    3重启nginx
    在重启之前检查是否有多余的nginx服务项,如果有则关闭.

    4hosts文件是否生效

    5根据请求路径 检查代码中路径的拼接是否正常.

    nginx域名代理

    1.5.1业务需求

    要求:用户通过http://manager.jt.com的方式 访问localhost:8091的服务器.
    利用反向代理的方式实现该功能.

    # 商品管理服务器  监听的是用户 manager.jt.com:80  映射的是url地址
        server {
            listen   80;
            server_name  manager.jt.com;
    
            #进行反向代理
            location / {
                #映射的url请求网址.  关键属性 proxy_pass
                proxy_pass http://localhost:8091;
            }  
        }

    Nginx属性学习

    2.1 Nginx负载均衡原理

    2.2Nginx 集群搭建

    说明: 要求启动3台服务器,运行jt-manager项目 端口号分别为8081/8082/8083, 通过/getPort请求,获取当前服务器端口号信息并且字符串返回.

    2.2.1 动态获取当前服务器端口号

    package com.jt.controller;
    
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    public class PortController {
    
        //考点:动态复制操作
        @Value("${server.port}")
        private Integer port;
    
    
        @RequestMapping("/getPort")
        public String getPort(){
    
            return "当前访问的端口号:"+port;
        }
    
    
    }

    2.3 轮询策略

    说明: 根据nginx的配置文件,依次访问服务器.

    # 商品管理服务器  监听的是用户 manager.jt.com:80  映射的是url地址
        server {
            listen   80;
            server_name  manager.jt.com;
    
            #进行反向代理
            location / {
                #映射的url请求网址.
                #proxy_pass http://localhost:8091;
                proxy_pass  http://jtWindows;
            }  
        }
    
        #配置集群  1.默认方式   轮询策略
        upstream jtWindows {
    
            server localhost:8081;
            server localhost:8082;
            server localhost:8083;
        }

    2.4 权重策略

    说明: 性能越高的服务器,则承担的压力也就越高.(关键属性  height=阿拉伯数字)

    #配置集群  1.默认方式   轮询策略   2.权重策略 
        upstream jtWindows {
    
            server localhost:8081  weight=6;
            server localhost:8082  weight=3;
            server localhost:8083  weight=1;
        }

    2.5 IPHASH策略

    需求: 有时在访问时可能会固定的访问某台服务器. 将用户与服务器进行绑定. 以后用户只能访问该服务器.
    算法: IPHASH算法.(N为服务器个数)

        #配置集群  1.默认方式   轮询策略   2.权重策略   3.IPhash策略
        upstream jtWindows {
            ip_hash;
            server localhost:8081  weight=6;
            server localhost:8082  weight=3;
            server localhost:8083  weight=1;
        }

    弊端:
    1. 用户与服务器进行绑定,当服务器宕机时则可能影响用户的使用.
    2. 由于访问是通过算数计算的结果,可能导致严重的负载不均的现象.

    2.3Nginx 高级属性

    2.3.1 down属性

    说明:nginx在不做任何的配置时,无法感知服务器是否正常运行.所有会频繁的访问故障机.
    解决方案: 可以利用down属性 来标识故障机.

    #配置集群  1.默认方式   轮询策略   2.权重策略   3.IPhash策略
        upstream jtWindows {
            #ip_hash;    
         server localhost:
    8081 weight=6; server localhost:8081 down; server localhost:8082 ; server localhost:8083 ; }

    2.3.2 备用机策略

    说明:正常情况下一般服务器部署时需要准备几台服务器当做备用.正常的情况下该服务器不参与工作.只有当主机遇忙时/或者宕机时.该服务器才会工作.

    配置方式:

    #配置集群  1.默认方式   轮询策略   2.权重策略   3.IPhash策略
        upstream jtWindows {
            #ip_hash;    
                    server localhost:8081  weight=6;
            server localhost:8081 down;
            server localhost:8082 down;
            server localhost:8083 backup;
        }
    
                

    2.3.3 nginx高可用配置

    说明:当tomcat服务器宕机时,可以通过如下的配置,实现服务器的自动的切换.无需人为的干预.

    配置信息:
    fail_timeout=60s; 设定超时时间(定义一个周期)
    max_fails=1 设定最大的访问失败次数.

    #配置集群  1.默认方式   轮询策略   2.权重策略   3.IPhash策略
        upstream jtWindows {
            #ip_hash;    
         server localhost:
    8081 weight=6; server localhost:8081 max_fails=1 fail_timeout=60s; server localhost:8082 max_fails=1 fail_timeout=60s; server localhost:8083 max_fails=1 fail_timeout=60s; }

    配置说明:
    如果nginx访问某台服务器时,如果该服务器访问失败,失败的次数达到最大失败次数时.在60秒之内,nginx不会再次访问故障机.直到下一个周期.

  • 相关阅读:
    linux 命令
    linux 后门防范
    linux date
    shell 常用参数
    linux rule策略
    vlan对服务器要注意的事情
    STL vector——c++
    蛇形矩阵
    简单a+b
    小 X 与数字(ten)
  • 原文地址:https://www.cnblogs.com/wangjincai/p/13452788.html
Copyright © 2020-2023  润新知