良玉的博客 点点滴滴,积水成河_良玉的博客_页游、手游linux运维工程师之路

nginx配置多个域名,server_names_hash_bucket_size 问题

配置多个 server 虚拟主机,必须要在配置文档中 http { 里头加上 server_names_hash_bucket_size 64; 这么一句

http {

server_names_hash_bucket_size 64;

include mime.types;
default_type application/octet-stream;
………….省略

}

不然不但 nginx 启动不了,而且 nginx -t 测试配置文档的时候会提示

could not build the server_names_hash, you should increase server_names_hash_bucket_size: 32
2016/05/20 09:54:27 [emerg] 11372#0: the configuration file /opt/nginx/conf/nginx.conf test failed

  下面是在中文wiki上摘抄的一段说明
  保存服务器名字的hash表是由指令 server_names_hash_max_size 和 server_names_hash_bucket_size所控制的。参数hash bucket size总是等于hash表的大小,并且是一路处理器缓存大小的倍数。在减少了在内存中的存取次数后,使在处理器中加速查找hash表键值成为可能。如果 hash bucket size等于一路处理器缓存的大小,那么在查找键的时候,最坏的情况下在内存中查找的次数为2。第一次是确定存储单元的地址,第二次是在存储单元中查找键 值。因此,如果Nginx给出需要增大 hash max size 或 hash bucket size的提示,那么首要的是增大前一个参数的大小.


阅读全文...

ubuntu源码编译nginx1.8和php5.5的蛋疼之处

错误一:2016/02/04 15:04:35 [error] 10159#0: *87 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 192.168.102.132, server: localhost, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "192.168.102.132:8080"   

        方法一:修改fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

        方法二:如果你是非root账户,使用普通账户操作,可能出现权限问题导致你出现以上错误,那么,请通过chmod -R  755 你的安装目录文件夹 试一试 ?

        conf/nginx.conf(这个是默认的配置文件,你也可以定制化另一个)和php下的php-fpm.conf配置文件的user的名字最好是一样

错误二: NOTICE: PHP message: PHP Warning:  Module 'PDO' already loaded in Unknown on line 0

        方法:将php.ini 中extension=pdo.so  注释掉;

错误三: NOTICE: [pool www] 'user' directive is ignored when FPM is not running as root
                NOTICE: [pool www] 'group' directive is ignored when FPM is not running as root

        方法:就用root来执行开启php-fpm吧!(nginx 也用root)或者sudo!通过php-fpm -R

    -R, --allow-to-run-as-root

                   Allow pool to run as root (disabled by default)

错误四:[crit] 21951#0: *118 open() "xxnginx/proxy_temp/1/00/0000000001" failed (13: Permission denied) while reading upstream,
    方法一:Nginx 运行的user 为webuser,仔细检察我的Nginx 目录权限为root,于是:
    # chown webuser.webuser xx/Nginx -R

    方法二:nginx.conf: 
    user nobody 
    改成:user root



阅读全文...

作者:良玉 分类:Nginx 浏览:1042 评论:0

Nginx 巧用Linux内存加速静态文件访问

        nginx 静态文件处理能力是非常棒的,我们能不能进一步优化呢?静态文件的读取,会损耗IO资源。可以考虑把静态文件转移到linux内存中,每次从内存读取资源,效果应该会好很多。不过,系统重启时,内存文件会自动消失。针对这种情况,我们需要做个shell,在系统重启时,把静态文件拷贝到内存中。

阅读全文...

Tengine和nginx的区别

nginx和tengine的压测数据基本上区别不大,吞吐量相差就1%左右。配置也几乎一样可以使用。

然而tengine提供了,taobao nginx的一些模块。
比如:
• beacon: 打点模块 
• tmd: 防CC攻击模块 
• gray: 灰度发布模块 
• hat: 防UTF-7攻击模块 
• waf: 防hash dos攻击模块 
• trans: 简繁转换模块
等等


阅读全文...

通过配置优化提升nginx性能

大多数的Nginx安装指南告诉你如下基础知识——通过apt-get安装,修改这里或那里的几行配置,好了,你已经有了一个Web服务器了。而且,在大多数情况下,一个常规安装的nginx对你的网站来说已经能很好地工作了。然而,如果你真的想挤压出Nginx的性能,你必须更深入一些。在本指南中,我将解释Nginx的那些设置可以微调,以优化处理大量客户端时的性能。需要注意一点,这不是一个全面的微调指南。这是一个简单的预览——那些可以通过微调来提高性能设置的概述。你的情况可能不同。

阅读全文...

优化Nginx配置中FastCGI参数提升性能

为保证Nginx下PHP环境的高速稳定运行,需要添加一些FastCGI优化指令。下面给出一个优化实例,将代码添加到Nginx主配置文件中的HTTP层级

 

1

2

3

4

5

6

7

8

9

10

11

12

fastcfi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=TEST:10m inactive=5m;

fastcgi_connect_timeout  300;

fastcgi_send_timeout   300;

fastcgi_read_timeout   300;

fastcgi_buffer_size   64k;

fastcgi_buffers   4   64k;

fastcgi_busy_buffers_size   128k;

fastcgi_temp_file_write_size   128k;

fastcgi_cache   TEST;

fastcgi_cache_valid   200   302   1h;

fastcgi_cache_valid   301   1d;

fastcgi_cache_valid    any   1m;


阅读全文...

Linux内核优化配置提升系统性能,亲测nginx访问性能提升

以下Linux 系统内核优化配置均经在线业务系统测试,服务器运行状态良好,用了一些时间整理,现和大家分享一下,如有那位高人看到配置上有问题,请给与指出!

# Controls the use of TCP syncookies

#表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;

net.ipv4.tcp_syncookies = 1

#一个布尔类型的标志,控制着当有很多的连接请求时内核的行为。启用的话,如果服务超载,内核将主动地发送RST包。

net.ipv4.tcp_abort_on_overflow = 1


阅读全文...

负载测试工具 LoadRunner下载

LoadRunner 是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试。通过使用LoadRunner ,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。

阅读全文...

nginx: [emerg] getpwnam(“www”) failed

在配置nginx 后,nginx开启报错,提示如下错误时:
nginx: [emerg] getpwnam(“www”) failed

解决方案一

在nginx.conf中 把user nobody的注释去掉既可

解决方案二

错误的原因是没有创建www这个用户,应该在服务器系统中添加www用户组和用户www,如下命令:


<table cel

阅读全文...

Nginx和lvs在负载均衡方面的粗略对比

lvs和nginx都可以用作多机负载的方案,它们各有优缺,在生产环境中需要好好分析实际情况并加以利用。 首先提醒,做技术切不可人云亦云,我云即你云;同时也不可太趋向保守,过于相信旧有方式而等别人来帮你做垫被测试。把所有即时听说到的好东西加以钻研,从而提高自己对技术的认知和水平,乃是一个好习惯。
下面来分析一下两者:

阅读全文...

配置Nginx 301重定向域名

301重定向方法

进行了301重定向,把www.uouo123.com和uouo123.com合并,并把之前的域名也一并合并. 有两种实现方法,第一种方法是判断nginx核心变量host(老版本是http_host):
server {
server_name www.uouo123.com uouo123.com ;
if ($host != 'www.uouo123.com' ) {
rewrite ^/(.*)$ http://www.uouo123.com/$1 permanent;
}
...


阅读全文...

Nginx配置目录别名(Alias)支持PHP

需求:通过 example.com 访问 /var/data/www,但通过 example.com/pa 访问的却是 /var/data/phpmyadmin,即保护phpmyadmin不暴露在www目录下。

一、方法一:(不推荐)

简介:这是网上普遍采用的 Rewrite 方式。
缺陷:简单的php程序还能应付,复杂一点的程序就"No input file specified"


阅读全文...