当前位置:  操作系统/服务器>linux
本页文章导读:
    ▪分享:Nginx高并发负载的优化      从Apache迁移到Nginx,Apache的调整配置和优化技巧对于Nginx来说并不适用。 不能像优化Apache那样去优化Nginx。Nginx没有像负载减半或让PHP运行加倍的选项。好消息是,Nginx本身已经优化的很好了。.........
    ▪Nginx Rewrite配置浅析      一,Nginx的Rewrite Nginx的Rewrite规则和Apache的Rewite规则差别不是很大,几乎可以直接使用。 比如在Apache中: rewrite ^/([0-9]{5}).html$ /viewthread.php?tid=$1 last; 而在Nginx中写成这样写是无法启动的,解决.........
    ▪Nginx访问二级目录后/(反斜杠)无法访问的解决办法      wnmp用户反映: Nginx访问二级目录的时候不加/(反斜杠)无法访问。 解决办法: 正则表达式自动加/(反斜杠)。 例如:   代码示例: if (-d $request_filename){    rewrite ^/(.*)([^/])$ http://$host/$1$2/ permane.........

[1]分享:Nginx高并发负载的优化
    来源: 互联网  发布时间: 2013-12-24

从Apache迁移到Nginx,Apache的调整配置和优化技巧对于Nginx来说并不适用。

不能像优化Apache那样去优化Nginx。Nginx没有像负载减半或让PHP运行加倍的选项。好消息是,Nginx本身已经优化的很好了。当决定使用Nginx,且使用apt-get安装它时,你得到的就是优化后的版本。(注意,Nginx的库更新比较频繁,WIKI页面上通常有最新的库)
http://wiki.nginx.org/Install

Nginx有很多影响其行为的选项,所有这些选项的默认值并不都是针对高并发场景进行优化的。
还需要考虑Nginx运行的平台,针对OS的限制进行优化。

总得来说,不能优化单个链接的载入时间,能确保Nginx有理想的优化环境用于处理高负载情况。
当然,所指的高并发指的是每秒数百个请求。

首先,要清楚Nginx可以用于大多数平台如Linux、MacOS、FreeBSD、Solaris和Windows。
大多数操作系统内部实现了高性能的基于事件的Polling方法,遗憾的是,Nginx只支持上面平台中的四个。个人倾向于FreeBSD。

Nginx并不适合Windows系统,在Windows服务器上没有理由要使用Nginx。因为Windows有不同的事件Polling处理机制,Nginx的作者决定不支持Windows。

Nginx的第二大限制:也是与OS相关。打开Shell环境,用su命令切换到Nginx的运行用户,再运行命令“ulimit -a”,有一些值会限制Nginx不能超载。很多系统默认的打开文件数是有限制的,有些系统的限制是1024.如果Nginx运行在这样的系统上,那么就会受到限制,日志记录中可能会出现(错误24:Too many open file打开了太多的文件),并返回一个错误给客户端。

Nginx本质上处理的文件数是可以超过1024个的,你需要修改相应的设置。

两种实现方法:
一是用ulimit设置限制;
二是使用worker_rlimit_nofile定义期望打开的文件描述符限制。


    
[2]Nginx Rewrite配置浅析
    来源: 互联网  发布时间: 2013-12-24

一,Nginx的Rewrite

Nginx的Rewrite规则和Apache的Rewite规则差别不是很大,几乎可以直接使用。

比如在Apache中:
rewrite ^/([0-9]{5}).html$ /viewthread.php?tid=$1 last;
而在Nginx中写成这样写是无法启动的,解决办法:
添加两个双引号:
rewrite “^/([0-9]{5}).html$” /viewthread.php?tid=$1 last;
同时将RewriteRule为Rewrite,基本实现了Nginx的Rewrite规则到Apache的Rewite规则的转换。

二,Rewrite的Flags
 

last - 基本上都用这个Flag。
break - 中止Rewirte,不在继续匹配
redirect - 返回临时重定向的HTTP状态302
permanent - 返回永久重定向的HTTP状态301

官方文档:http://wiki.nginx.org/NginxHttpRewriteModule

Discuz!在Nginx下的Rewrite

以下的Rewrite中百分号前面多了个转移字符“”,这在Apache中是需要的,而在Nginx中则是不需要的。
rewrite ^/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ /viewthread.php?tid=$1&extra=page%3D$3&page=$2 last;
正确写法为:
 

rewrite ^/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ /viewthread.php?tid=$1&extra=page%3D$3&page=$2 last;
 

这个错误在基本上目前所有使用Nginx作为服务器,并且开启了Rewrite的网站上存在。

完整正确的Discuz!在Nginx下的Rewrite如下:
 

代码示例:
rewrite ^/archiver/((fid|tid)-[w-]+.html)$ /archiver/index.php?$1 last;
rewrite ^/forum-([0-9]+)-([0-9]+).html$ /forumdisplay.php?fid=$1&page=$2 last;
rewrite ^/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ /viewthread.php?tid=$1&extra=page%3D$3&page=$2 last;
rewrite ^/space-(username|uid)-(.+).html$ /space.php?$1=$2 last;
rewrite ^/tag-(.+).html$ /tag.php?name=$1 last;
break;

    
[3]Nginx访问二级目录后/(反斜杠)无法访问的解决办法
    来源: 互联网  发布时间: 2013-12-24

wnmp用户反映:
Nginx访问二级目录的时候不加/(反斜杠)无法访问。

解决办法:
正则表达式自动加/(反斜杠)。

例如:
 

代码示例:
if (-d $request_filename){
   rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
}

    
最新技术文章:
▪linux系统中的列出敏感用户的脚本代码
▪a10 config backup for aXAPI
▪一键备份gitolite服务器的Shell脚本
▪nagios 分发文件实现代码
▪阿里云云服务器Linux系统更新yum源Shell脚本
▪一个监控LINUX目录和文件变化的Shell脚本分享
▪Linux下实现SSH免密码登录和实现秘钥的管理、...
▪Shell正则表达式之grep、sed、awk实操笔记
▪3个备份系统文件并邮件发送的Shell脚本分享
▪CentOS 6.3下给PHP添加mssql扩展模块教程
▪监控网站是否可以正常打开的Shell脚本分享
▪shell脚本编程之if语句学习笔记
▪shell脚本编程之循环语句学习笔记
▪shell脚本编程之case语句学习笔记
▪Shell脚本实现的阳历转农历代码分享
▪Shell脚本实现复制文件到多台服务器的代码分...
▪Shell脚本实现批量下载网络图片代码分享
▪Shell脚本实现检测文件是否被修改过代码分享
▪Shell脚本数组用法小结
▪Shell脚本批量重命名文件后缀的3种实现
▪C语言实现的ls命令源码分享
▪Linux下查找后门程序 CentOS 查后门程序的shell脚...
▪Shell 函数参数
▪linux shell 自定义函数方法(定义、返回值、变...
▪Shell实现判断进程是否存在并重新启动脚本分...
▪Shell脚本break和continue命令简明教程
▪Shell脚本函数定义和函数参数
▪让代码整洁、过程清晰的BASH Shell编程技巧
▪shell常用重定向实例讲解
▪awk中RS、ORS、FS、OFS的区别和联系小结
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3