当前位置:  操作系统/服务器>linux
本页文章导读:
    ▪windows下nginx配置文件参考一例      一个windows下的nginx配置文件,有需要的朋友参考下。 代码如下:     #user  nobody;      worker_processes  2;            #error_log  logs/error.log;      #error_log  logs/error.log  notice;    .........
    ▪Nginx 502 Bad Gateway的错误原因排查      NGINX 502 Bad Gateway error 可能是FastCGI 的问题,造成NGINX 502错误的可能性很多。 本文就将收集到的一些和502 Bad Gateway错误有关的问题和排查方法整理出来,供大家学习参考。 先从FastCGI配置入手.........
    ▪nginx中php-fpm调优方法      很多人介绍说Nginx对高并发有着优良的性能,于是配了一个Nginx+php-fpm来跑在线代理程序,刚配置好时运行正常,但运行一段时间,网站打开很慢,打开网站后,在输入框输入要访问的网站,也.........

[1]windows下nginx配置文件参考一例
    来源: 互联网  发布时间: 2013-12-24

一个windows下的nginx配置文件,有需要的朋友参考下。

代码如下:

    #user  nobody; 
    worker_processes  2; 
     
    #error_log  logs/error.log; 
    #error_log  logs/error.log  notice; 
    #error_log  logs/error.log  info; 
     
    #pid        logs/nginx.pid; 
     
     
    events { 
        worker_connections  1024; 
    } 
     
     
    http { 
        include       mime.types; 
        default_type  application/octet-stream; 
     
        #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ' 
        #                  '$status $body_bytes_sent "$http_referer" ' 
        #                  '"$http_user_agent" "$http_x_forwarded_for"'; 
     
        #access_log  logs/access.log  main; 
        log_format  test  '$remote_addr-hello nice to-$remote_user'; 
        access_log logs/jia.log test; 
        sendfile        on; 
        #tcp_nopush     on; 
     
        #keepalive_timeout  0; 
        keepalive_timeout  65; 
     
        #gzip  on; 
     
     
       upstream localhost{ 
             server 127.0.0.1:8080 ; 
             server 127.0.0.1:8081 ; 
          server 127.0.0.1:8082 ; 
     
           } 
     
      server { 
            listen       80; 
            server_name  localhost; 
     
            #charset koi8-r; 
     
            #access_log  logs/host.access.log  main; 
            
            location / { 
              proxy_pass        http://localhost/; 
                 proxy_set_header   Host             $host; 
                 proxy_set_header   X-Real-IP        $remote_addr; 
                 proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for; 
                #root   html; 
                index  index.html index.htm; 
            }  
            
            #error_page  404              /404.html; 
     
            # redirect server error pages to the static page /50x.html 
            # 
            error_page   500 502 503 504  /50x.html; 
            location = /50x.html { 
                root   html; 
            } 
     
            # proxy the PHP scripts to Apache listening on 127.0.0.1:80 
            # 
            #location ~ \.php$ { 
            #    proxy_pass   http://127.0.0.1; 
            #} 
     
            # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 
            # 
            #location ~ \.php$ { 
            #    root           html; 
            #    fastcgi_pass   127.0.0.1:9000; 
            #    fastcgi_index  index.php; 
            #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name; 
            #    include        fastcgi_params; 
            #} 
     
            # deny access to .htaccess files, if Apache's document root 
            # concurs with nginx's one 
            # 
            #location ~ /\.ht { 
            #    deny  all; 
            #} 
        } 
     
        # another virtual host using mix of IP-, name-, and port-based configuration 
        # 
        #server { 
        #    listen       8000; 
        #    listen       somename:8080; 
        #    server_name  somename  alias  another.alias; 
     
        #    location / { 
        #        root   html; 
        #        index  index.html index.htm; 
        #    } 
        #} 
     
     
        # HTTPS server 
        # 
        #server { 
        #    listen       443; 
        #    server_name  localhost; 
     
        #    ssl                  on; 
        #    ssl_certificate      cert.pem; 
        #    ssl_certificate_key  cert.key; 
     
        #    ssl_session_timeout  5m; 
     
        #    ssl_protocols  SSLv2 SSLv3 TLSv1; 
        #    ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; 
        #    ssl_prefer_server_ciphers   on; 
     
        #    location / { 
        #        root   html; 
        #        index  index.html index.htm; 
        #    } 
        #}        
    } 


    
[2]Nginx 502 Bad Gateway的错误原因排查
    来源: 互联网  发布时间: 2013-12-24

NGINX 502 Bad Gateway error 可能是FastCGI 的问题,造成NGINX 502错误的可能性很多。
本文就将收集到的一些和502 Bad Gateway错误有关的问题和排查方法整理出来,供大家学习参考。

先从FastCGI配置入手:
1)查看FastCGI进程是否已经启动
NGINX 502错误的含义是sock、端口没被监听造成的。我们先检查fastcgi是否在运行

2)检查系统Fastcgi进程运行情况
除了第一种情况,fastcgi进程数不够用、php执行时间长、或者是php-cgi进程死掉也可能造成nginx的502错误
运行以下命令判断是否接近FastCGI进程,如果fastcgi进程数接近配置文件中设置的数值,表明worker进程数设置太少
 

代码如下:
#netstat -anpo | grep “php-cgi” | wc -l

3)FastCGI执行时间过长也可导致nginx502错误
根据实际情况调高以下参数值
 

代码如下:
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;

4)头部太大
nginx和apache一样,有前端缓冲限制,可以调整缓冲参数
 

代码如下:
fastcgi_buffer_size 32k;
fastcgi_buffers 8 32k;
 

如果你使用的是nginx的负载均衡Proxying,调整
 

代码如下:
proxy_buffer_size 16k;
proxy_buffers 4 16k;
 

参见:http://www.ruby-forum.com/topic/169040

5)https转发配置错误的话也会报错nginx502
正确的配置方法
 

代码如下:
server_name www.mydomain.com;
location /myproj/repos {
set $fixed_destination $http_destination;
if ( $http_destination ~* ^https(.*)$ )
{
set $fixed_destination http$1;
}
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Destination $fixed_destination;
proxy_pass http://subversion_hosts;
}

参见:http://www.ruby-forum.com/topic/169040

当然,还要看你后端用的是哪种类型的FastCGI,我用过的有php-fpm,流量约为单台机器40万PV(动态页面), 现在基本上没有碰到nginx502。

本文转自:http://www.inginx.com/nginx-502-error/


    
[3]nginx中php-fpm调优方法
    来源: 互联网  发布时间: 2013-12-24

很多人介绍说Nginx对高并发有着优良的性能,于是配了一个Nginx+php-fpm来跑在线代理程序,刚配置好时运行正常,但运行一段时间,网站打开很慢,打开网站后,在输入框输入要访问的网站,也慢得不行。在网站打开慢时,在SSH终端上输入命令也慢,怀疑是机房网速问题,但ssh连接网站时,打开也慢,基本可以排除机房的网速问题。

当打开网站慢时,把服务器重启后,会很快起来,后来发现,用 /usr/local/php/sbin/php-fpm restart
把fastcgi重启下也会快起来,最把它加入计划任务,每小时重启下,基本保证网站不会慢,但终究不是办法。

查看了nginx.log和php-fpm.log,根据里面的错误,总算是把问题解决了,主要修改了两个地方。
1、问题:
发现/usr/local/php/etc/php-fpm.conf文件里定义的打开文件描述符的限制数量是
51200
但用 命令ulimit -n查看,发现只有1024

我已在/etc/rc.local里添加了
ulimit -SHn 51200

竟然没生效

解决:
vi /etc/security/limits.conf

文件最后加上
 

代码如下:
* soft nofile 51200
* hard nofile 51200

2、问题:
用命令
netstat -np | grep 127.0.0.1:9000 |wc -l
发现只有100多

解决:
根据服务器内存情况,可以把PHP FastCGI子进程数调到100或以上,在4G内存的服务器上200就可以
服务器上内存为8G,我把PHP FastCGI子进程数调整到300

vi /usr/local/php/etc/php-fpm.conf
将max_children修改为300
300

重启服务器,这样,网站打开速度快,而且稳定了。

附:如果高负载网站使用PHP-FPM管理FastCGI,刚参考如下调优方法,或许可以给你带来一些帮助。

1.尽量少安装PHP模块,最简单是最好(快)的

2.把您的PHP FastCGI子进程数调到100或以上,在4G内存的服务器上200就可以
注:我的1g测试机,开64个是最好的,建议使用压力测试获取最佳值

3.使用socket连接FastCGI,linux操作系统可以放在 /dev/shm中
注:在php-fpm.cnf 里设置/tmp/nginx.socket就可以通过socket连接 FastCGI了,/dev/shm是内存文件系统,放在内存中肯定会快了 (这一步待确认)

4.调高linux内核打开文件数量,可以使用这些命令(必须是root帐号)
 

代码如下:
echo 'ulimit -HSn 65536' >> /etc/profile
echo 'ulimit -HSn 65536' >> /etc/rc.local
source /etc/profile
 

注:我是修改/etc/rc.local,加入ulimit -SHn 51200的

5. 增加 PHP-FPM 打开文件描述符的限制:
# vi /path/to/php-fpm.conf
找到“1024”
把1024 更改为 4096 或者更高.
重启 PHP-FPM.

6.使用php代码加速器,例如 eAccelerator, XCache.在linux平台上可以把`cache_dir`指向 /dev/shm。

您可能感兴趣的文章:
nginx下设置php-fpm使用socket文件的方法分享
nginx中php-fpm使用sock方式配置的例子
深入理解php-fpm.conf中的两个重要参数
ngnix与php-fpm 安装一例
有关nginx+php-fpm配置文件的组织结构
在nginx中查看php-fpm工作状态
Centos下yum安装nginx+PHP-FPM+eAccelerator+mysql


    
最新技术文章:
▪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