Nginx

Nginx的c30k问题解决方法

最近我们的下载服务遭遇了c30k,导致nginx的下载服务近乎停滞。原因嘛,很简单,服务器部署在国外,众所周知的原因,SL机房的线路不稳,加上不同地区出口速率抖动很厉害,为了加速下载,我们放开了限制,允许用户使用多线程的下载工具。这样一来,自然产生了c10k问题。下载文件都不小,每个用户至少使用4线程,同时下载若干个素材。。。很自然并发链接数30k以上。 更受限于手头money,无法扩容(实际上要有钱也不会跑国外)。因此,必须提高单机并发能力和吞吐量。 我们的下载服务是使用Perl写的一个Pl [详细]

Nginx中共享session会话配置方法例子

Session一般都指时域。在计算机术语中,Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间以及如果需要的话,可能还有一定的操作空间。 Session一般都指时域。在计算机术语中,Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间以及如果需要的话,可能还有一定的操作空间。 通常情况下能把session改成cookie,就能避开session的一些弊端,在从前看的一本J2EE [详细]

nginx基于tcp做负载均衡的方法

配置多台服务器时,经常需要让各个服务器之间的时间保持同步,如果服务器有外网环境,可以直接同外部的时间服务器更新时间,可以采用rdate命令更新时间: rdate -s tick.greyware.com 可以写个脚本放在/etc/cron.hourly中每小时校正一下时间。 如果是内网环境下,可以自己配置一个时间服务器,以CentOS为例,配置时间服务器的方法如下: 1.先安装xinetd : sudo yum install -y xinetd 2.修改/etc/xinetd.d/time- [详细]

nginx中域名、目录的301重定向配置示例

301重定向不陌生, 有时候有需求把某目录整个重定向到一个二级域名,或者不带www的顶级域名请求全部重定向到带www的二级域名.如果是Apache,需要配置.htaccess,nginx不支持,需要在配置文件里面使用rewrite指令来实现。 顶级域名重定向到www 复制代码 代码如下: server { server_name jb51.net; rewrite ^/(.*)$ http://www.jb51.net/$1 permanent; } 如上配置,所以jb51.net的请求 [详细]

Nginx+SSL+Node.js运行环境配置教程

Nginx是一款高性能的HTTP服务器,同时也是一款高效的反向代理服务器。不像传统的服务器,Nginx是基于事件驱动的异步架构,内存占用少但是性能很好。如果你的Web应用是基于Node.js的,那么建议你考虑使用Nginx来做反向代理,因为Nginx可以非常高效地提供静态文件服务。本文的主要内容是在不同的操作系统下配置Nginx和SSL,并且搭建一个Node.js运行环境。 安装Nginx 假设你已经在服务器上安装了Node.js,下面我们来安装Nginx。 在Mac系统上安装Nginx 利用 [详细]

Nginx作为反向代理时传递客户端IP的设置方法

nginx默认配置文件里面是没有进行日志转发配置的,这个需要我们自己手动来操作了,当然后端的real server不同时操作方法是不一样的,这里我们分别例举几种情况来说明一下。 nginx做前端,转发日志到后端nginx服务器: 因为架构的需要采用多级 Nginx 反向代理,但是后端的程序获取到的客户端 IP 都是前端 Nginx 的 IP,问题的根源在于后端的 Nginx 在 HTTP Header 中取客户端 IP 时没有取对正确的值。 同样适用于前端是 Squid 或者其他反向代理的情况 [详细]

nginx日志配置指令详解

日志对于统计排错来说非常有利的。本文总结了nginx日志相关的配置如access_log、log_format、open_log_file_cache、log_not_found、log_subrequest、rewrite_log、error_log。 nginx有一个非常灵活的日志记录模式。每个级别的配置可以有各自独立的访问日志。日志格式通过log_format命令来定义。ngx_http_log_module是用来定义请求日志格式的。 1. access_log指令 语法: access [详细]

权限问题导致Nginx 403 Forbidden错误的解决方法

今天在一个新的环境上安装nginx,结果访问的都是403通常显示403我立马都会想到路径配置不对,但我仔细看了一下,目录路径没问题: nginx.conf: 复制代码 代码如下: server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; locati [详细]

nginx+rsync+inotify实现负载均衡配置方法

实验环境 前端nginx:ip 192.168.6.242,对后端的wordpress网站做反向代理实现复杂均衡 后端nginx:ip 192.168.6.36,192.168.6.205都部署wordpress,并使用相同的数据库 1、在后端的两个wordpress上配置rsync+inotify,两服务器都开启rsync服务,并且通过inotify分别向对方同步数据 下面配置192.168.6.205这台服务器 vim /etc/rsyncd.conf uid = nginx gid = [详细]

Nginx中定义404页面并且返回404状态码的正确方法

前几天,一朋友出程序出问题却怎么查都没看出问题,于是让我帮它看看。其实它是ajax请求了很多个模板,然后把模板写到页面中。关键是所有请求的页面都是200正常状态码返回,表面上看没什么问题,实际上有些请求虽然返回200状态码,但给回的状态码是200。WebServer是nginx,直接告诉我应该他们配置了nginx的404错误页面,虽然请求不存在的资源可以成功返回404页面,但返回状态码确是200。 404.html 复制代码 代码如下: This is 404 page.请求一个不存在的页面: [详细]

nginx配置ssl双向验证的方法

1、安装nginx略 http://www.jb51.net/article/49479.htm 2、使用openssl实现证书中心 由于是使用openssl架设私有证书中心,因此要保证以下字段在证书中心的证书、服务端证书、客户端证书中都相同 Country Name State or Province Name Locality Name Organization Name Organizational Unit Name编辑证书中心配置文件 vim /etc/pki/tls/openssl [详细]

nginx中配置pathinfo模式示例

缘由 很久不使用apache了,渐渐对apache感到陌生,因为朋友有个ZendFramework框架从apache移到nginx下,需要pathinfo模式支持。 网上海搜 于是开始搜索nginx+pathinfo相关文章,一开以为很容易就会配置好。因为搜索后发现有大量文章介绍nginx开启pathinfo模式,感觉不是什么难事。但是经过几个小时下来,还是没有配置好。并且大量文章的内容都极其相似,基本都是转载的。 开始有点急了!因为一天过去了没有配好。 继续摸索 没办法,继续搜索。为了验证方 [详细]

Nginx搭建流媒体FLV视频服务器配置示例

FLV视频已经是绝大多数视频网站首选的视频类型,国内外著名的视频分享站YouTube、优酷、土豆、新浪博客、QIYI等等都是Flash播放器播放FLV/MP4视频。 FLV有两种发布方式 一、普通的HTTP方式:这种方式通常需要预先下载到本地才能播放,有缓冲,但下载后就不会占用服务器资源。 二、流媒体方式:无需下载,可以实时播放任意拖拽进度,用户体验好但很耗服务器资源。 安装模块 在编译安装Nginx的时候把Flv Stream模块加上 复制代码 代码如下:./configure --user [详细]

nginx 504 Gateway Time-out错误解决方法

一般看来, 这种情况可能是由于nginx默认的fastcgi进程响应的缓冲区太小造成的, 这将导致fastcgi进程被挂起, 如果你的fastcgi服务对这个挂起处理的不好, 那么最后就极有可能导致504 Gateway Time-out 现在的网站, 尤其某些论坛有大量的回复和很多内容的, 一个页面甚至有几百K 默认的fastcgi进程响应的缓冲区是8K, 我们可以设置大点 在nginx.conf里, 加入: fastcgi_buffers 8 128k 这表示设置fastcgi缓冲区为8× [详细]

完美解決Nginx 504 Gateway time-out问题

最近用dedecms建的一个网站新增了大批内容,有三个栏目的内容量都超过了两千篇,超过两千三百篇的两个栏目在生成栏目列表的时候就出现了504 Gateway time-out 服务器用的是nginx,我不是很懂,服务器维护人员在网上随便找了一篇文章,修改了nginx的缓存设置,不管用,他就不管了,可是我不能不管啊,不能生成列表页面,那后面的内容不是都不能用了麽把数据库下载到本地,在本地配置了nginx,试了很多遍,都不行,又改到Apache下面,更夸张,生成了83个页面就不能继续了,看来还是n [详细]