`
mcj8089
  • 浏览: 191181 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Nginx学习笔记

    博客分类:
  • Java
阅读更多
一、安装nginx 
 

    
    1、在nginx官方网站下载一个包,下载地址是: http://nginx.org/download/nginx-1.4.2.tar.gz 
    2、WinSCP(ftp上传工具).exe FTP 上传工具上传达到CentOS中 
    3、我是先建一个目录,把要用的到的安装包放到一起. 
        #mkdir /home/ 
        #tar zxf nginx-1.4.1.tar.gz 
        #cd nginx-1.4.1 
    4、安装pcre开发包 
        #yum install -y pcre-devel 
    5、如果安装出现在下面的错误是缺少编译环境。安装编译源码所需的工具和库 
        ./configure: error: C compiler cc is not found 
        #yum install gcc gcc-c++ ncurses-devel perl 
    6、安装cmake,从http://www.cmake.org下载源码并编译安装 
        #yum -y install make gcc gcc-c++ ncurses-devel 
        #yum -y install zlib zlib-devel 
    7、如果需要ssl功能需要openssl库 
        #yum -y install openssl openssl--devel 
    8、安装nginx 
        #cd nginx-1.4.1 
        #./configure --prefix=/opt/nginx 
        #make 
        #make install 
     9、检查nginx的配置文件是否争取(假如修改过配置文件)
          #nginx -t
    10、启动服务 
        #/opt/nginx/sbin/nginx  -c /opt/nginx/conf/nginx.conf 
    11、停止服务 
         #/opt/nginx/sbin/nginx -s stop 
    12、查看端口占用情况 
        #netstat -tunlp 
    13、如果其它机器无法访问,解决方法如下: 
        #/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT 
        然后保存: 
        #/etc/rc.d/init.d/iptables save 
        重启防火墙 
        #/etc/init.d/iptables restart
 
 
二、日志文件的配置与切割
 

 
    1. 定义日志格式,默认combined

# log_format formatName formaPattern
 
    2. 指定日志文件存放路径
 
        # access_log savePath logFormat
 
    3. 例子
 
        log_format weblog '$remote_addr - $remote_user [$time_local] "$request" '
           '$status $body_bytes_sent "$http_referer" '
           '"$http_user_agent" $http_x_forwarded_for';
        access_log /data/wslogs/1987.name_access.log weblog;
 
    4. 参数含义
  • $remote_addr 和 $http_x_forwarded_for:记录客户端的ip地址。
  •  
  • $remote_user:记录客户端用户名称。
  •  
  • $time_local:记录访问时间与时区。
  •  
  • $request:记录请求的URL与HTTP协议。
  •  
  • $status:记录请求状态;成功是200。
  •  
  • $body_bytes_sent:记录发送给客户端文件主体内容大小。
  •  
  • $http_referer:记录从那个页面链接访问过来的。
  •  
  • $http_user_agent:记录客户端浏览器的相关信息。
    5. 切割:
  • 就是把log文件用MV命令剪切到另一个文件,
  • 然后再kill -user1重启nginx,在重新生成nginx日志。
  • 这样写一段脚本,就可以把log文件每天存储一份了
 
三、信号控制
 

  •    TERM、INT    快速关闭
  •    QUIT    从容关闭
  •    HUP    平滑关闭,重新加载配置文件
  •    USER1    重新打开日志文件,在切割日志时用途较大
  •    USER2    平滑升级可执行程序
  •    WINCH    从容关闭工作进程
 
四、HTTP缓存


    
    1. 相关指令集
  • proxy_cache zone_name,该指令用于设置哪个缓存区将被使用,zone_name的值为proxy_cache_path指令创建的缓存区名称
  • proxy_cache_path  设置缓存文件存放路径,只能在http标签内配置
  • proxy_cache_methods [GET POST HEAD] 设置缓存哪些HTTP方法,默认GET/HEAD
  • proxy_cache_min_uses number 设置缓存的最小使用次数,默认1
  • proxy_cache_key line 设置web缓存的KEY值,如proxy_cache_key "$host:$server_port$uir$is_args$args"
  • proxy_cache_valid code time 对不同返回状态吗设置不同的缓存时间,如proxy_cache_valid 200 302 10m
proxy_cache_path /data/cache levels=1:2 keys_zone=cache_one:500m inactive=1d max_size=30g
       
levels指定缓存空间有两层hash目录,第一层目录为一个字母,第二层为2个字母,类似data/cache/c/29/sd8923hsajdlfjaosdcjiajsdoij999;keys_zone参数用来为这个缓存区起名,500m指定缓存空间大小为500M;inactive的1d指如果缓存数据在1天内没有被访问,将被删除;max_size的30g是指硬盘缓存空间为30GB.
 
 
五、负载均衡与反向代理


 
    1. Http的Upstream模块
  • ip_hash: 让同一IP一直访问同一台机器,保证session正常使用
upstream stream_name {
    ip_hash;
    server 192.168.1.12:8080
    server 192.168.1.15:80
}
  • server参数
        weight    --权重越高,被分配到的客户端请求数越多
        max_fails    --在参数fail_timeout指定的时间内请求失败的次数(404除外)
        fail_timeout    --在max_fails次失败后,暂停的时间
        down    --标记服务器永久离线,适用于ip_hash
        backup    --仅在非backup服务器全部宕机或繁忙的时候才启用
 
 
六、URL重写Rewrite


 
    1. 标记
  • last,表示完成rewrite。使用alias时必须用
  • break,本条规则匹配完成后,终止匹配,不再匹配后面的规则。使用proxy_pass时必须用
  • redirect,返回302临时重定向,浏览器地址栏会显示跳转后的URL地址
  • permanent,返回301永久重定向,浏览器地址栏会显示跳转后的URL地址
   
    2. 重定向URL末尾加?将不会把参数附加到URL后面,否则自动附加参数
    3. 花括号的使用{}
 
    如果在正则中使用了花括号,那么这条正则要用双引号引起来。
 
    rewrite "/image/([0-9]{2})" /image/$1.png;
 
    4. 实例
    
    a. 文件或目录不存在时,重定向到指定页面
    
    if(!-e $request_filename){
        rewrite ^/(.*)$ /index.jsp last;
    }
 
    b. 如果是IE浏览器,重定向到IE目录
 
            if($http_user_agent ~ MSIE){
                rewrite ^(.*)$ /IE/$1 break;
            }
 
    c. 设置文件缓存时间
 
            location ~ .*\.(gif|png|jpg|bmp|swf)${
                expires 30d;
            }
            location ~ .*\.(js|css)${
                expires 1h;
            }
 
    d. 示例代码如下:
 
http{
    proxy_temp_path /data0/proxy_temp_path ;
   #设置Web缓存区名称为cache_one,内存缓存空间大小为500M,自动清除超过1天没有被  
   #访问的缓存数据,硬盘缓存空间大小为30G
    proxy_cache_path /data0/proxy_cache_path levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g ;
    server{
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$ {
      #使用Web缓存区cache_one
      proxy_cache cache_one ;
      #对不同HTTP状态码缓存设置不同的缓存时间
      proxy_cache_valid 200 304 12h ;
      proxy_cache_valid 301 302 1m ;
      proxy_cache_valid any 1m ;
      #设置Web缓存的Key值,Nginx根据Key值md5哈希存储缓存,这里根据"域名,URI,
      #参数"组合成Key
      proxy_cache_key $host$uri$is_args$args;
        }

    #用于清除缓存,假设一个URL为http://my.domain.com/test.gif,通过访问
    #http://my.domain.com/purge/test.gif可以清除该URL的缓存
    location ~ /purge(/.*) {
      #设置只允许指定的IP或IP段才可以清除URL缓存
      allow 127.0.0.1 ;
      allow 192.168.0.0/16 ;
      deny all ;
      proxy_cache_purge cache_one $host$1$is_args$args ;
        }
    }
}
 
 
七、常用配置参数


 
    # 允许客户端请求的最大的单个文件字节数
    client_max_body_size 300m;
 
    # 缓冲区代理缓冲用户端请求的最大字节数,可以理解为先保存到本地再传给用户
    client_body_buffer_size 128k;
 
    # 跟后端服务器连接的超时时间,发起握手等候响应超时时间
    proxy_connect_timeout 600;
 
    # 连接成功后,等候后端服务器响应时间,其实已经进入后端的排队之中等候处理
    proxy_read_timeout 600;
 
    # 后端服务器数据回传时间,就是在规定时间之内后端服务器必须传完所有数据
    proxy_send_timeout 600;
 
    # 代理请求缓存区,这个缓存区会保存用户的头信息以供Nginx进行规则处理,一般只要能保存下头信息即可
    proxy_buffer_size 16k;
 
    # 临时缓存文件大小
    proxy_temp_file_write_size 64k;
 
    # 对网页文件、css、JS、XML等启动gzip压缩,减少数据传输量,提高访问速度
    gzip on;
    gzip_min_length 1k;
    gzip_buffers 4 16k;
    gzip_http_version 1.0;
    gzip_comp_level 2;
    gzip_types text/plain application/x-javascript text/css application/xml;
    gzip_vary on;
 

八、安装第三方模块



 
    1. 安装第三方模块的时候需要覆盖原来nginx文件,代码如下:
    

 

    ./configure  --prefix/nginx安装目录  --add-module=/第三方模块的目录

 

分享到:
评论

相关推荐

    高分项目 基于STM32F103单片机的无线测距系统源代码+项目资料齐全+教程文档.zip

    【资源概览】 高分项目 基于STM32F103单片机的无线测距系统源代码+项目资料齐全+教程文档.zip高分项目 基于STM32F103单片机的无线测距系统源代码+项目资料齐全+教程文档.zip高分项目 基于STM32F103单片机的无线测距系统源代码+项目资料齐全+教程文档.zip 【资源说明】 高分项目源码:此资源是在校高分项目的完整源代码,经过导师的悉心指导与认可,答辩评审得分高达95分,项目的质量与深度有保障。 测试运行成功:所有的项目代码在上传前都经过了严格的测试,确保在功能上完全符合预期,您可以放心下载并使用。 适用人群广泛:该项目不仅适合计算机相关专业(如电子信息、物联网、通信工程、自动化等)的在校学生和老师,还可以作为毕业设计、课程设计、作业或项目初期立项的演示材料。对于希望进阶学习的小白来说,同样是一个极佳的学习资源。 代码灵活性高:如果您具备一定的编程基础,可以在此代码基础上进行个性化的修改,以实现更多功能。当然,直接用于毕业设计、课程设计或作业也是完全可行的。 欢迎下载,与我一起交流学习,共同进步!

    java八股文介绍00002

    java八股文,"Java八股文"通常指的是在面试Java开发者时经常被问到的一系列标准问题,这些问题往往是技术面试中的基础部分,用来评估应聘者对Java编程语言和Java虚拟机(JVM)的理解程度。这些问题的答案往往模式化,因此被称为“八股文”。虽然这个词汇带有一定的贬义,但是这些问题却是面试中不可或缺的一部分,因为它们能够快速地检验应聘者的基本技能和理论知识。

    东北大学本科毕业设计 论文latex模板 2019

    东北大学本科毕业设计 论文latex模板 2019 关于东北大学本科毕业设计论文的LaTeX模板,您可以参考以下两个资源: 1. **Acytoo/neu_bachelor_thesis_template**: 这个模板是修改自一位学长的模板,以适应东北大学最新的要求。它使用GBT7714-2005参考文献标准,并提供了详细的安装和使用说明。您需要使用xelatex进行编译,并可能需要手动安装参考文献的标准。此外,如果您使用的是VSCode编辑器,可以参考提供的VSCode配置。 2. **tzaiyang/NEUBachelorThesis**: 这个模板同样适用于东北大学本科生毕业论文。它提供了详细的VSCode配置,包括快捷键设置和texcount bug修复(仅限Windows用户)。此外,还提供了如何插入公式、图片和三线表的说明,以及如何引用参考文献的方法。 您可以根据自己的需求和喜好选择其中一个模板。如果您对LaTeX不熟悉,建议先学习一些基础知识,以便更好地使用这些模板。祝您毕业设计顺利!

    node-v7.2.0-linux-armv7l.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    串口通讯原理+硬件原理解释+软件配置

    STM32串口通信大纲---适用于初学者 I. 引言 学习背景与串口通信的重要性 简述本文目的与主要内容 II. STM32里的串口通信 基本概念与功能介绍 USART及STM32内置串口 全双工通信与异步时钟控制 接收/发送逻辑结构 III. 串口配置 选择合适的串口资源(USART1/2/3) 参数设置:波特率、位数、校验、停止位 GPIO配置:TX/RX引脚驱动方式 IV. 串口发送与接收 发送数据流程 设置TDR与发送移位寄存器 检测TXE标志位 数据移位与持续发送 接收数据流程 配置RX输入模式 读取RDR与RXNE标志 字节数据接收 V. 实现方式 不使用中断的简单示例 利用中断接收数据 查询中断状态 中断服务程序处理数据

    基于opencv和深度学习的手写计算器.zip

    基于opencv和深度学习的手写计算器.zip

    高分项目 基于STM32单片机和Android的智能蓝牙点餐系统源代码+项目资料齐全+教程文档.zip

    【资源概览】 高分项目 基于STM32单片机和Android的智能蓝牙点餐系统源代码+项目资料齐全+教程文档.zip高分项目 基于STM32单片机和Android的智能蓝牙点餐系统源代码+项目资料齐全+教程文档.zip高分项目 基于STM32单片机和Android的智能蓝牙点餐系统源代码+项目资料齐全+教程文档.zip 【资源说明】 高分项目源码:此资源是在校高分项目的完整源代码,经过导师的悉心指导与认可,答辩评审得分高达95分,项目的质量与深度有保障。 测试运行成功:所有的项目代码在上传前都经过了严格的测试,确保在功能上完全符合预期,您可以放心下载并使用。 适用人群广泛:该项目不仅适合计算机相关专业(如电子信息、物联网、通信工程、自动化等)的在校学生和老师,还可以作为毕业设计、课程设计、作业或项目初期立项的演示材料。对于希望进阶学习的小白来说,同样是一个极佳的学习资源。 代码灵活性高:如果您具备一定的编程基础,可以在此代码基础上进行个性化的修改,以实现更多功能。当然,直接用于毕业设计、课程设计或作业也是完全可行的。 欢迎下载,与我一起交流学习,共同进步!

    高分项目 基于STM32单片机的桌面电磁力时钟摆设计源代码+项目资料齐全+教程文档.zip

    【资源概览】 高分项目 基于STM32单片机的桌面电磁力时钟摆设计源代码+项目资料齐全+教程文档.zip高分项目 基于STM32单片机的桌面电磁力时钟摆设计源代码+项目资料齐全+教程文档.zip高分项目 基于STM32单片机的桌面电磁力时钟摆设计源代码+项目资料齐全+教程文档.zip 【资源说明】 高分项目源码:此资源是在校高分项目的完整源代码,经过导师的悉心指导与认可,答辩评审得分高达95分,项目的质量与深度有保障。 测试运行成功:所有的项目代码在上传前都经过了严格的测试,确保在功能上完全符合预期,您可以放心下载并使用。 适用人群广泛:该项目不仅适合计算机相关专业(如电子信息、物联网、通信工程、自动化等)的在校学生和老师,还可以作为毕业设计、课程设计、作业或项目初期立项的演示材料。对于希望进阶学习的小白来说,同样是一个极佳的学习资源。 代码灵活性高:如果您具备一定的编程基础,可以在此代码基础上进行个性化的修改,以实现更多功能。当然,直接用于毕业设计、课程设计或作业也是完全可行的。 欢迎下载,与我一起交流学习,共同进步!

    node-v7.9.0-linux-ppc64le.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    基于深度学习的手写数字识别.zip

    基于深度学习的手写数字识别.zip

    Parameter-Free Fast Pixelwise Non-Local Means Denoising

    这篇文章的核心内容是关于一种图像去噪算法——非局部均值(Non-Local Means, NLM)算法的快速且开源的实现。以下是文章的主要要点: 算法介绍:文章提出了一种快速且无参数的NLM算法实现,该算法用于去除图像中的噪声。NLM算法由Antoni Buades, Bartomeu Coll和Jean-Michel Morel在2005年引入,因其简单性、出色的视觉效果以及利用自然图像的非局部冗余性而受到广泛欢迎。 算法改进:文章基于线之和的计算来计算块距离,这些线在块移位下是不变的。通过从一个图像数据库中计算NLM的最佳参数(以平均峰值信噪比PSNR为标准),实现了一个无需参数调整的NLM算法。

    Hypack 2016、Hypack 2021、Hypack 2022、Hypack 2024 完整中文资源

    Hypack 2016、Hypack 2021、Hypack 2022、Hypack 2024 四个版本的完整中文资源,全部完成汉化,汉化完整错误少,全网汉化第一,替换相应版本的资源文件即可。 压缩包含资源文件lngEdit.db和汉化了的lngEdit.exe程序(命名为lngEditChs.exe)

    selenium 库和浏览器驱动的安装.rar

    selenium 库和浏览器驱动的安装.rar

    预警系统链性态网体系化作战矩阵.txt

    预警系统链性态网体系化作战矩阵.txt

    基于深度学习的普通话语音识别.zip

    基于深度学习的普通话语音识别.zip

    node-v7.1.0-sunos-x86.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    com.smile.gifmaker.apk

    com.smile.gifmaker.apk

    改进模拟退火算法模型中英文版.vsdx

    模拟退火算法(Simulated Annealing,SA)是一种基于概率的算法,其灵感来源于固体退火原理。模拟退火算法最早由N. Metropolis等人在1953年提出,随后在1983年由S. Kirkpatrick等人成功地将退火思想引入到组合优化领域。该算法基于物理中固体物质的退火过程与一般组合优化问题之间的相似性,通过赋予搜索过程一种时变且最终趋于零的概率突跳性,从而有效避免陷入局部极小并最终趋于全局最优。 模拟退火算法的基本思想是从某一较高初温出发,伴随温度参数的不断下降,结合概率突跳特性在解空间中随机寻找目标函数的全局最优解。算法的主要步骤如下: 初始化:设置初始温度T(充分大)、初始解状态S(算法迭代的起点)以及每个T值的迭代次数L。 对k=1,...,L进行以下操作: 产生新解S':通过对当前解进行变换(如互换、置换等)产生新解。 计算增量ΔT=C(S')-C(S),其中C(S)为评价函数。 判断新解是否接受:若ΔT<0,则接受S'作为新的当前解;否则以概率exp(-ΔT/T)接受S'作为新的当前解。 如果满足终止条件(如连续若干个新解都没有被接受),则输出当前解

    2023年广西中小学生程序设计挑战赛初赛(入门组)试题及答案.pdf

    2023年广西中小学生程序设计挑战赛初赛(入门组)试题及答案.pdf

    基于深度学习的近红外光谱数据回归分析模型.zip

    基于深度学习的近红外光谱数据回归分析模型.zip

Global site tag (gtag.js) - Google Analytics