Centos6部署LNMP平台(二)

【本文档所介绍的内容适用于公司测试/生产常见的php,HTML等web环境部署,即常见的LAMP/LNMP环境部署】

上一小结我们介绍关于LNMP的部署安装,但LNMP的配置还有一个很重要的部分,就是nginx主配置文件nginx.conf的配置,下面就讲讲关于nginx的主配置文件(nginx.conf)的相关参数介绍

如下所示:为nginx主配置文件:nginx.conf参考模板

#user  nobody;
user nginx ;   //指定nginx服务的运行账号      
worker_processes  auto;    //指定nginx work进程的运行数,不一般与cpu的核心相等,也可以设置auto自动识别
worker_rlimit_nofile 65535;  //一个nginx进程打开的最多文件描述符数目,此数字最好与系统(ulimit -n)相等 
#worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000; //绑定work进程到指定的cpu上
#error_log  logs/error.log  info; //定义全局错误日志定义类型

#pid        logs/nginx.pid;  //设置nginx pid文件的路径

events {
    use epoll;   //定义nginx使用的工作模式
    worker_connections  65535;    //定义nginx单个work进程的最大连接数
     multi_accept on;
}

http {
    include       mime.types;
    include       /etc/nginx/extra/jkl.conf;
    default_type  application/octet-stream;
    
    //定义nginx访问日志格式
    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;  //定义nginx日志的访问记录类型
        
       
        charset  utf-8;        //定义字符编码
        server_names_hash_bucket_size 128;  //服务器名字的hash表大小
        client_header_buffer_size 1M;    // 客户端请求头部的缓冲区大小,这个可以根据你的系统分页大小来设置,一般一个请求头的大小不会超过1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。 分页大小可以用命令getconf PAGESIZE 取得。 但也有client_header_buffer_size超过4k的情况,但是client_header_buffer_size该值必须设置为“系统分页大小”的整倍数。
 
#       client_body_timeout 15; //设置客户端主体超时时间,如果客户端超过这个时间还没有请求数据,nginx将会返回408错误

#       client_header_timeout 15; ////设置客户端头部超时时间,如果客户端超过这个时间还没有请求数据,nginx将会返回408错误
#       send_timeout 15;    //指定响应客户端超时时间,如果在该时间之内客户端还没有活动,nginx将会主动关闭该连接

        large_client_header_buffers 4 128k;   //设置的缓存区
        client_max_body_size 2000m; //设置上传文件的最大值
        
        sendfile on;   //开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。
        
        tcp_nopush on;  //防止网络阻塞
        tcp_nodelay on; //防止网络阻塞
        keepalive_timeout 60;  //长连接超时时间,单位是秒   
        reset_timedout_connection on;  //开启超时连接服用功能                          
        

        fastcgi_cache_path /var/tmp/nginx/fastcgi_cache levels=1:2 keys_zone=TEST:10m                        inactive=5m  max_size=10g;//定义缓存存放的路径及存储区域总大小
        
        fastcgi_connect_timeout 90;  //定义nginx与后端fastcgi连接超时时间
        fastcgi_send_timeout 60;      //定义nginx向后端请求超时时间(指两次握手后向fastcgi传送请求超时时间)
        fastcgi_read_timeout 60;//定义nginx响应后端响应的超时时间(指两次握手后接受fastcgi响应请求的超时时间)
        
        fastcgi_buffer_size 64k; //指定读取fastcgi应答第一部分需要用多大的缓冲区,这个值表示将使用一个64kb的缓冲区响应第一部分应答(应答头)
        
        fastcgi_buffers 8 128k; //指本地需要用多大的缓冲区缓冲fastcgi的应答请求,如果一个php脚本所产生的页面大小为256kb,那么会分配4个64kb缓冲区来缓存,如果页面大于256kb,那么大于256kb的部分会缓存到fastcgi_temp指定的路径中,但是因为内存中数据处理远快于磁盘,所以这个值应该为站点中php所产生的页面大小的中间值,如果站点大部分php脚本产生的页面为256kb,那么可以设置成"8 16k  4 64k"
        
        fastcgi_busy_buffers_size 256k;  //建议设置为fastcgi——buffer的两倍,
        
        fastcgi_temp_file_write_size 256k; //在写入fastcgi_temp_path时用到多大缓存值,默认为fastcgi_buffers的两倍,设置值若过小会导致nginx报502错误  
        
#       fastcgi_temp_path  /usr/local/nginx/ngx_fastcgi_tmp

        fastcgi_cache oldboy_nginx; //开启fastcgi缓存并为其指定一个名称(根据需要来选择)
        fastcgi_cache_valid 200 302 1h; //对于200 ,302应答缓存1小时
        fastcgi_cache_valid any 1m;   //对于其他应答缓存1分钟
        fastcgi_cache_min_uses 1;     //缓存最小使用次数
        fastcgi_cache_key "$request_method://$host$request_uri";

        
   
       
        open_file_cache max=204800 inactive=20s; //这个将为打开文件指定缓存,默认是没有启用的,max 指定缓存数量,建议和打开文件数一致,inactive 是指经过多长时间文件没被请求后删除缓存。
        
        open_file_cache_valid 30s;  //这个是指多长时间检查一次缓存的有效信息。
        
        open_file_cache_min_uses 2; //open_file_cache 指令中的inactive 参数时间内文件的最少使用次数,如果超过这个数字,文件描述符一直是在缓存中打开的,如上例,如果有一个文件在inactive 时间内一次没被使用,它将被移除。
        
 #      open_file_cache_errors on;  
      
        
        
        gzip on;               //开启gzip压缩输出
 #      gzip_disable "msie6";   //使用正则表达式来指定某些不需要gzip压缩的浏览器(将和User-Agents进行匹配)。依赖于PCRE库。在0.6.23版本中首次使用0.7.63版本以后,你可以为IE5.5和IE6 SP1使用msie6参数来禁止gzip压缩。
        
        gzip_vary on;        //开启对vary  header 支持;
        gzip_proxied any;    //对所有请求都启用压缩功能
        gzip_comp_level 6;   //压缩等级
        gzip_min_length 1k;  //最小压缩文件大小
        gzip_buffers 16 8k;   //指定缓存压缩应答的缓冲区数量和大小,如果不设置,一个缓存区的大小为分页大小,根据环境的不同可能是4k或8k。
        
        gzip_http_version 1.1;   //压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
        gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;    //压缩类型,默认就已经包含text/html,所以下面就不用再写了,写上去也不会有问题。

        
        

    #access_log  logs/access.log  main;

#    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
#    keepalive_timeout  65;

    #gzip  on;

#    server {
#        listen       80;
#        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

#        location / {
#            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 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

为了方便,我们也可以将新增的一些优化参数单独编辑在一个文件里,比如zend.conf,然后在nginx.conf使用include引用该配置

       
#      {nginx setting}
        charset  utf-8;     
        server_names_hash_bucket_size 128; 
        client_header_buffer_size 1M;    
#       client_body_timeout 15; 
#       client_header_timeout 15; 
#       send_timeout 15;    
        large_client_header_buffers 4 128k;  
        client_max_body_size 2000m;
        sendfile on;   
        tcp_nopush on;  
        tcp_nodelay on; 
        keepalive_timeout 60; 
        reset_timedout_connection on;                 
        
 #     {fastcgi  setting}
        fastcgi_cache_path /var/tmp/nginx/fastcgi_cache levels=1:2 keys_zone=TEST:10m                        inactive=5m  max_size=10g;
        fastcgi_connect_timeout 90; 
        fastcgi_send_timeout 60;     
        fastcgi_read_timeout 60;
        fastcgi_buffer_size 64k; 
        fastcgi_buffers 8 128k; 
        fastcgi_busy_buffers_size 256k;  
        fastcgi_temp_file_write_size 256k; 
#       fastcgi_temp_path  /usr/local/nginx/ngx_fastcgi_tmp

              
#      {file  setting}
        open_file_cache max=204800 inactive=20s; 
        open_file_cache_valid 30s; 
        open_file_cache_min_uses 2; 
#       open_file_cache_errors on;  
              
#      {gzip  setting}
        gzip on;               
#       gzip_disable "msie6";   
        gzip_vary on;       
        gzip_proxied any;    
        gzip_comp_level 6;   
        gzip_min_length 1k; 
        gzip_buffers 16 8k;   
        gzip_http_version 1.1;   
        gzip_types text/plain text/css application/json application/x-javascript text/xml 
        application/xml application/xml+rss text/javascript;    
  
#      {proxy setting}
        proxy_cache_path /var/tmp/nginx/fastcgi_cache levels=1:2 keys_zone=TEST:10m                        inactive=5m  max_size=10g;
        proxy_connect_timeout 90; 
        proxy_send_timeout 60;     
        proxy_read_timeout 60;
        proxy_buffer_size 64k; 
        proxy_buffers 8 128k; 
        proxy_busy_buffers_size 256k;  
        proxy_temp_file_write_size 256k; 
#       proxy_temp_path  /usr/local/nginx/ngx_fastcgi_tmp 

        fastcgi_cache_valid 200 302 1h; 
        fastcgi_cache_valid any 1m;   
        fastcgi_cache_min_uses 1; 
        fastcgi_cache_use_stale  error timeout invalid_header http_500 http_502 http_503 http_504;
        fastcgi_cache_key "$request_method://$host$request_uri";

上述nginx相关优化配置添加好了后,新建一个关于关于php的web配置文件,如下所示,为一个通用的nginx对php解析的参考模板

vim /etc/nginx/extra/web.conf
server {
     listen       80 default backlog=65535;
     server_name localhost;
     root    /usr/local/www;
     index  index.php index.html ;

     location ~ \.php$ {
                   fastcgi_pass   127.0.0.1:9000;
                   fastcgi_index  index.php;
                   fastcgi_split_path_info ^(.+\.php)(.*)$;
                   fastcgi_param PATH_INFO $fastcgi_path_info;
                   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                   include        fastcgi_params;
                   fastcgi_cache fastcgi_nginx; 
                   fastcgi_cache_valid 200 302 1h; 
                   fastcgi_cache_valid any 1m;   
                   fastcgi_cache_min_uses 1; 
                   fastcgi_cache_use_stale error timeout invalid_header http_500 http_502 
                   http_503 http_504;
                   fastcgi_cache_key "$request_method://$host$request_uri";
        }

至此关于LNMP的大致配置参数讲解就到这里了!

时间: 2024-11-07 14:14:18

Centos6部署LNMP平台(二)的相关文章

Centos6部署LNMP平台(一)

[本文档所介绍的内容适用于公司测试/生产常见的php,HTML等web环境部署,即常见的LAMP/LNMP环境部署] 一:LAMP环境部署前准备: 1.1相关软件以及系统 系统要求:Centos 6.0以上 (64位) 相关中间件:Nginx: 1.6.0 以上   php:版本5.5  mysql-5.5 .25 1.2相关系统依赖包安装检查准备 1.2.1 检查系统自带httpd,mysql是否安装 # rpm -qa | grep httpd  # rpm -qa | grep mysql

脚本_部署LNMP平台

#!bin/bash#功能:部署LNMP平台,实际运行脚本时,需要去除备注.#作者:liusingbonfunction menu {                //定义函数menu         clear         echo " ##############----Menu----##############"         echo "# 1. Install Nginx"         echo "# 2. Install MySQ

部署LNMP平台和相关的实验

该实验分为四个部分,实验一为搭建LNMP平台,实验二为测试能否解析php的文件 和连接数据库的效果,实验三为实现地址重写的功能,实验四为不同的浏览器,给出不同样式的页面 实验一:部署LNMP环境 一.目标 安装部署Nginx.MariaDB.PHP环境 安装部署Nginx.MariaDB.PHP.PHP-FPM: 启动Nginx.MariaDB.FPM服务: 并测试LNMP是否工作正常. 二.各软件的安装 1.安装源码包安装时需要的依赖包 yum -y install gcc openssl-d

41.部署LNMP平台源码

源码部署LNMP v 环境需求:关闭防火墙,设置静态IP地址,部署YUM库 # systemctl stop firewalld                  #关闭firewalld防火墙 # systemctl disable firewalld.service           #禁止firewalld服务自启 # sed -i -e 's|SELINUX=enforcing|SELINUX=disabled|' /etc/selinux/config  #关闭SELINUX # s

Docker compose 一键部署LNMP平台

docker-compose.yml version: '3' services: nginx: hostname: nginx build: context: ./nginx dockerfile: Dockerfile ports: - 80:80 links: - php:php-cgi volumes: - ./wwwroot:/usr/local/nginx/html php: hostname: php build: ./php links: - mysql:mysql-db vol

老司机教你使用shel脚本15分钟部署LNMP

防伪码:我喜欢出发,只为到达的地方都属于昨天!          老司机教你使用shel脚本15分钟部署LNMP 一.环境简介 1.LNMP,顾名思义,就是Linux系统下Nginx+MySQL+PHP的一种网站服务器架构. 2.Linux是目前最流行的免费操作系统,代表版本有debian.centos.fedora.gentoo等, 今天我们使用CentOS-6.5作为LNMP架构的基础. 3.Nginx是一个高性能的HTTP和反向代理服务器,其性能稳定.功能丰富.运维简单.处理静态文件速度快

Puppet基于Master/Agent模式实现LNMP平台部署

前言 随着IT行业的迅猛发展,传统的运维方式靠大量人力比较吃力,运维人员面对日益增长的服务器和运维工作,不得不把很多重复的.繁琐的工作利用自动化处理.前期我们介绍了运维自动化工具ansible的简单应用,本期带来的是运维自动化神器puppet基于Master/Agent模式实现LNMP平台部署. Puppet 简介 Puppet是基于ruby语言开发的一种Linux.Unix.Windows平台的集中配置管理系统,可以C/S模式或独立运行,使用自有的puppet描述语言,可管理配置文件.用户.c

LNMP平台部署及应用

LAMP平台应该是目前应用最为广泛的网站服务器架构,但随着Nginx在企业中的使用越来越多,LNMP(或LEMP)架构也受到越来越多Linux系统工程师的青睐,其中"E"来自于Nginx的发音[engine x] 构建LNMP网站平台 构建LNMP平台需要Linux服务器.Nginx服务器.MySQL数据库.PHP解析环境,具体方法和LAMP差不多,Nginx服务器的搭建方法上篇博客已经介绍了,下面以安装好的Nginx服务器为基础,搭建LNMP平台 1. 安装MySQL数据库 MySQ

CentOS6.8系统部署lnmp环境

搭建LNMP环境(CentOS 6)本文档介绍如何使用一台普通配置的云服务器ECS实例或联网的虚拟主机搭建LNMP平台的web环境. Linux:自由和开放源码的类UNIX操作系统.Nginx:轻量级网页服务器.反向代理服务器.MySQL:关系型数据库管理系统.PHP:主要适用于Web开发领域的一种脚本语言. 基本流程1.准备编译环境2.安装nginx3.安装mysql4.安装php-fpm5.测试访问 步骤一:准备编译环境 本文主要说明手动安装LNMP平台的操作步骤,您也可以在云市场购买LNM