zoukankan      html  css  js  c++  java
  • Nginx

    1.查找安装路径

    whereis nginx


    2.检查配置文件nginx.conf 是否正确
    ./nginx –t


    3.启动、停止nginx

    cd /usr/local/nginx/sbin/
    ./nginx
    ./nginx -s stop
    ./nginx -s quit
    ./nginx -s reload
    ./nginx -s quit    # 此方式停止步骤是待nginx进程处理任务完毕进行停止。
    ./nginx -s stop    # 此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。


    4.查询nginx进程:

    ps aux|grep nginx


    5.重新加载配置文件

    ./nginx -s reload


    6.配置nginx.conf

    #======================以下是全局配置项
    #指定运行 Nginx 的用户和用户组 ,
    #默认情况下该选项关闭(关闭的情况下使用的用户就是 nobody)
    #user nobody nobody ;
    #表示操作系统启动多少个工作进程运行 Nginx
    worker processes 1 ;
    #Nginx 运行错误的日志存放位置。当然你还可以指定错误级别
    #error log logs/error.log ;
    #error_log logs/error.log notice ;
    #error_log logs/error.log info ;
    #指定主进程 id 文件的存放位置,虽然 worker processes != 1 的情况下, 会有很多进程 , 管理进程却只有一个
    #pid logs/nginx.pid;
    events {
         #指单个工作进程可以允许同时建立外部连接的数量, 无论这个连接是 Nginx 外部建立的,还是 Nginx 内部建立的
         worker connections 1024 ;
         #连接使用的网络工/ 0 模型,
         #可以采用[ kqueue rtsig epoll select poll  eventport ]  
        use epoll ;
    }
    http {
         #===============以下是 Nginx 后端服务配置项
         upstream backendserverl {
             #Nginx 向后端服务器分配请求任务 的方式 , 默认为轮询,如果指定了ip hash ,就是 Hash 算法
             #ip hash
             #后端服务器 ip : port , 如果有多个服务节点 , 这里就配置多个
            server 192.168.220.131:8080 ;
             server 192.168.220.132:8080 ;

             #backup 表示,这是一个备份节点 , 只有当所有节点失效后
             #Nginx 才会往这个节点分配请求任务
             #server 192.168.220.133:8080 backup ;
             #weight , 固定权重 , 还记得我们上文提到 的加权轮询方式吧
             #server 192.168.220.134:8080 weight=100;
         }
    }


    # =========================以下是 HTTP 协议主配置
    #安装 Nginx 后,在 conf 目录下除了 nginx.conf 主配置文件,还有很多模板配置文件 ,
    #这里就是导入这些模板文件
    include mime .types ;
    #HTTP 核心模块指令,这里设定默认类型为二进制流,也就是当文件类型未定义时使用这种方式
    default_type application/octet-stream;
    #日志格式
    #log_format main '$remote_addr - $remote_user [$time_local] "$request" ’  '$status $body_bytes_sent "$http_referer" '  '"$http_user_agent"  "$http_x_forwarded_for"';
    #日志文件存放的位置
    #access log logs/access.log main ;
    #sendfile 规则开启
    sendfile on ·
    #指定一个连接的等待时间(单位秒),如果超过等待时间,则连接就会断掉 。注意一定要设置,否则高并发情况下会产生性能问题
    keepalive_timeout 65 ;
    #开启数据压缩,后文详细介绍
    gzip on;
    #==========================以下是一个服务实例的配置
    server {
         #这个代理实例的监听端口
        listen 80 ;
         #server_name 取个唯一的实例名都要想半天?
         server_name localhost ;
         #编码格式
         charset utf-8 ;
         #access log logs/host.access.log main;
         #location 将按照规则分流满足条件的 URL o
         #” location /”你可以理解为“默认分流位置” 。
         location / {
                 #root 目录,这个 html 表示 Nginx 主安装目录下的“ html ”目录 。
                 root html ;
                 #目录中的默认展示页面
                 index index.html index.htm;
                 #location 支持正则表达式, “~” 表示匹配正则表达式
                 location ~ ^/business/ {
                     #方向代理。后文详细讲解
                     proxy_pass http://backendserverl;
                     #redirect server error pages to the static page / 50x.html
                     #errorpage 404 /404 . html;
                     error_page 500 502 503 504 /50x.html ;
                     location = /50x.html {
                         root html;
                     }

                 }
         }
    }


    7.常用模块
    1)gzip 压缩模块

    #开启 gzip 压缩服务
    gzip on ;
    #gzip 压缩需要申请|临时内存空间,假设前提是压缩后大小是小子等于压缩前的。例如,如果原始文件大小为 10KB ,那么它超过了 8KB,所以分配的内存是 8 × 2 = 16KB;再例如,原始文件大小为 18KB,很明显 16KB 也是不够的,那么按照 8x2x2 = 32KB 的大小申请内存。如果没有设置,则默认值是申请跟原始数据相同大小的内存空间去存储 gzip 压缩结果
    gzip_buffers 2 8K ;
    #进行压缩的原始文件的最小值,也就是说如果原始文件小子 SKB,那么就不会进行压缩了
    gzip_min_length 5K;
    #gzip 压缩基子的 HTTP 协议版本,默认就是 HTTP 1.1
    gzip_http_version 1.1;
    # gzip 压缩级别 l~ 9 ,级别越高压缩率越大,压缩时间也就越长, CPU 越高
    gzip_comp_level 5;
    #需要进行 gzip 压缩的 Content-Type 的 Header 的类型。建议 JS 、 TEXT 、 css 、 XML, JSON
    #格式都要进行压缩:图片就没必要了, GIF 、 JPGE 文件已经压缩得很好了 , 就算再压缩,效果也不好,而且还耗费 CPU 。
    gzip_types text/HTML text/plain application/x-javascript text/css application/xml;


    2)rewrite 模块
    Nginx 的强大在于其对URL请求的(应用正则表达式)重写(重定位),这就是 rewrite 功能模块的作用 。Nginx 的 rewrite 功能模块依赖于 PCRE Lib

    ~      区分大小写进行正则表达式匹配
    ~*     不区分大小写进行正则表达式匹配
    !~     区分大小写进行正则表达式不匹配
    !~*    不区分大小写进行正则表达式不匹配

    如: location ~*  .(jpg|gif|png|ioc|jpeg)$

    Nginx 中的全局变量
    • $content_length:获取 request 中 header 部分的“ Content_Length ”值 。
    • $content_type : 获取 request 中 header 部分的“ Content_type ”值。
    • $request_method : 请求方式,常用的有两种请求方式: POST 、 GET 。
    • $remote addr : 发送请求的客户端 IP 。
    • $remote_port:发送请求的客户端端口。
    • $request_uri : 含有参数的完整的初始 URI 。
    • $server_addr: request 到达的 server 的 IP 。
    • $server_port : 请求到达的服务器的端口号 。

    rewrite 语法
    rewrite regex replacement flag

    flag关键字
    • redirect:通知客户端重定 向到 rewrtie 后面的地址 。
    • permanent:通知客户端永久重定向到 rewrtie 后面的地址 。
    • last : 将rewrite 后的地址重新在 server 标签中执行。
    • break : 将rewrite 后的地址重新在当前的 location 标签中执行 。


    3)nginx upstream_check_module健康检查模块



    4) image_filter图片动态缩略模块

    #不区分大小写进行正则表达式匹配
    #只要满足以下表达式的请求路径,则进行图片动态缩略阁的生成
    location ~* /(.+).(jpg|gif|png|ioc|jpeg)_(d+)_(d+)$ {
         #将以上正则表达式第 3 个区域设置的数值传入变量“ w ”
         set $w $3;
         #将以上正则表达式第 4 个区域设置的数值传入变量“ h”
        set $h $4;
         #将 rewrite 后的地址重新在当前的 location 标签执行,以便找到原始图片
         rewrite /(.+).(jpg|gif|png|ioc|jpeg)_(d+)_(d+)$ /$1.$2 break;
         #按照宽度 w 和高度 h,将原始图片进行等比例缩放
         image filter resize $w $h;
         #设置单张原始图片的最大值为 lOMB
         image_filter_buffer 10M;
         #设置图片所在的根目录
        root /home/nodejs/BDK/public/upload/;
    }

  • 相关阅读:
    代码扫描工具
    事务注解加在Controller 和 Service上有哪些区别
    什么是嵌套事务
    配置工程日志
    利用mkvirtualenv工具搭建python2和python3环境
    python接口自动化1-发送get请求
    面试题:使用存储过程造10w条测试数据,数据不重复
    python测试开发
    接口自动化测试持续集成+postman+newman+git+jenkins+钉钉
    app专项测试
  • 原文地址:https://www.cnblogs.com/gispathfinder/p/9025920.html
Copyright © 2011-2022 走看看