• Nginx 随笔


    使用包管理工具安装nginx

    • Linux(基于deb)
      sudo apt-get install nginx

    • Linux(基于rpm)
      sudo yum install nginx

    • FreeBSD
      sudo pkg_install -r nginx

    编译安装nginx(Ubuntu)

    (1)到官网下载nginx(http://nginx.org/en/download.html)并解压,sudo wget http://nginx.org/download/nginx-1.11.1.tar.gz && tar -zxvf nginx-1.11.1.tar.gz
    (2)nginx依赖于pcre和zlib,所以需要安装相应的依赖包sudo apt-get install -y libpcre3 libpcre3-dev zlib1g-dev
    (3)cd nginx-1.11.1./configure --prefix=/usr/local/nginxmake && make install

    编译安装完nginx后,我们可以在/usr/local/nginx下看到四个目录

    • conf 配置文件目录
    • html 项目目录文件目录
    • logs 日志文件目录
    • sbin 主要二进制文件目录

    nginx 常用命令

    /usr/local/nginx/sbin/nginx 启动nginx
    /usr/local/nginx/sbin/nginx -s reload 重启nginx
    /usr/local/nginx/sbin/nginx -s stop 停止nginx
    /usr/local/nginx/sbin/nginx -s quit 优雅地退出nginx,也就是处理完当前的请求才会退出nginx
    /usr/local/nginx/sbin/nginx -t 检查配置文件是否有错误

    nginx 信号

    信号名
    TERM,INT 关闭进程
    QUIT 优雅的关闭进程,即等请求结束后再关闭
    HUP 改变配置文件,平滑的重读配置文件
    USR1 重读日志,在日志按月/日分割时有用
    USR2 平滑的升级
    WINCH 优雅关闭旧的进程(配合USR2来进行升级)

    用法

    kill -信号名 cat /xxx/path/log/nginx.pid

    kill -HUP cat /var/log/nginx.pid

    nginx 配置

    nginx的配置可以查看这篇博文http://www.cnblogs.com/xiaogangqq123/archive/2011/03/02/1969006.html

    location

    location 的语法为location [=||*|^~] patt {}

    修饰符
    = 精准匹配
    ~ 区别大小写的正则匹配
    ~* 不区分大小写的正则匹配
    ^~ 如果精准匹配到,则不进行正则匹配

    rewrite

    rewrite中用到的指令
    if (条件) {} 设定条件,再进行重写
    set #设置变量,如set $size 1;
    return #返回状态码
    break #跳出rewrite
    rewrite #重写

    if条件的语法

    1: “=”来判断相等, 用于字符串比较
    2: “~” 用正则来匹配(此处的正则区分大小写)
    “~*” 不区分大小写的正则
    3: -f -d -e来判断是否为文件,为目录,是否存在.


    rewrite语法

    语法:rewrite 正则表达式 定向后的位置 模式
    如:rewrite category-(d+)-b(d+).html /ecshop/category.php?id=$1&brand=$2;

    gzip配置的常用参数

    gzip on|off; #是否开启gzip
    gzip_buffers 32 4K| 16 8K #缓冲(压缩在内存中缓冲几块? 每块多大?)
    gzip_comp_level [1-9] #推荐6 压缩级别(级别越高,压的越小,越浪费CPU计算资源)
    gzip_disable #正则匹配UA 什么样的Uri不进行gzip
    gzip_min_length 200 # 开始压缩的最小长度(再小就不要压缩了,意义不在)
    gzip_http_version 1.0|1.1 # 开始压缩的http协议版本(可以不设置,目前几乎全是1.1协议)
    gzip_proxied # 设置请求者代理服务器,该如何缓存内容
    gzip_types text/plain application/xml # 对哪些类型的文件用压缩 如txt,xml,html ,css
    gzip_vary on|off # 是否传输gzip压缩标志

    缓存

    在nginx使用缓存很简单,在location或if中设置expire即可,格式如下
    expires 30s;
    expires 30m;
    expires 2h;
    expires 30d;

    反向代理 + 负载均衡

    用proxy_pass和upstream就可实现反向代理和负载均衡,用法如下

    这时候访问网站,通过查看日志,可以看出是两台服务器是来回处理请求的,在线上环境中,每台服务器的性能不一定一样,这时候可以通过weight关键字增加权重,如下所示

  • 相关阅读:
    一个比较好用的网络库
    Live Writer Beta 测试
    WinForm中如何设置MDI父窗体的背景图片
    使文件下载的自定义连接支持 FlashGet 的断点续传多线程链接下载! C#/ASP.Net 实现! 转
    关于从剪贴板获得截图
    我的作品图书馆信息管理系统
    很久以前用VB写的小游戏
    Web2.0时代,RSS你会用了吗?_CSDN
    VFP下利用API调用帮助
    VFP中轻松绑定 Windows 事件
  • 原文地址:https://www.cnblogs.com/helbing/p/5611018.html
Copyright © 2020-2023  润新知