zoukankan      html  css  js  c++  java
  • nginx_笔记分享_配置篇

    参考
    http://www.howtocn.org/nginx:directiveindex
    http://blog.s135.com/



    nginx 配置文档为 nginx.conf 比如我的配置文档 /usr/local/nginx/conf/nginx.conf

    格式类似于下面,不要忘记在行尾添加分号(;),使用井号(#)来注释
    .......;
    events
    {
    .......;
    }

    http
    {
    .......;
       server
       {
       .......;
       }

       server
       {
       .......;
       }
    .......;
    }


    我的 nginx.conf

    user nginx nginx;      

    #Nginx 进程运行的用户和组

    worker_processes 4;   

    #Nginx 进程数(建议设定为cpu的总核数,比如我的i3 cpu)

    error_log  logs/error.log error; 

    #定义错误日志,分别为[ debug | info | notice | warn | error | crit ]

    pid        logs/nginx.pid;      

    #pid文件位置

    worker_rlimit_nofile 65535;
    #一个 nginx 进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit-n) 与 nginx 进程数相除,但是 nginx 分配请求并不是那么均匀,所以最好与 ulimit -n的值保持一致。

    # use [ kqueue | rtsig | epoll | /dev/poll | select | poll ];
    events
    {
    use epoll;                  

    #使用epoll事件模型
    worker_connections 65535;   

    #每个nginx进程的连接数(最大连接=连接数(65535) x 进程数(4))
    }


    http
    {
    include mime.types;                  

    #文件扩展名与文件类型映射表
    default_type application/octet-stream;

    #默认文件类型
    #charset gb2312;

    #默认编码
    server_names_hash_bucket_size 128;    

    #服务器名字的 hash 表大小
    client_header_buffer_size 32k;        

    #上传文件大小限制
    large_client_header_buffers 4 32k;    

    #指定客户端一些比较大的请求头使用的缓冲区数量和大小。
    client_max_body_size 8m;              

    #指令指定允许客户端连接的最大请求实体大小
    sendfile on;                         

    #开启高效文件传输模式
    tcp_nopush on;                       

    #防止网络阻塞
    tcp_nodelay on;                       

    #防止网络阻塞
    keepalive_timeout 60;                 

    #客户端与服务器长连接的超时时间,超过这个时间,服务器将关闭连接
    #fastcgi                                 
    fastcgi_connect_timeout 300;         

    #指定连接到后端FastCGI的超时时间。
    fastcgi_send_timeout 300;            

    #向FastCGI传送请求的超时时间,这个值是指已经完成两次握手后向FastCGI传送请求的超时时间。
    fastcgi_read_timeout 300;             

    #接收FastCGI应答的超时时间,这个值是指已经完成两次握手后接收FastCGI应答的超时时间。
    fastcgi_buffer_size 64k;              

    #这里可以设置为fastcgi_buffers指令指定的缓冲区大小。
    fastcgi_buffers 4 64k;               

    #指定本地需要用多少和多大的缓冲区来缓冲FastCGI的应答
    fastcgi_busy_buffers_size 128k;      

    #建议为fastcgi_buffers的两倍
    fastcgi_temp_file_write_size 128k;    

    #在写入fastcgi_temp_path时将用多大的数据块,默认值是fastcgi_buffers的两倍,设置上述数值设置太小时若负载上来时可能报 502 Bad Gateway
    #
    gzip on;                  

    #打开gzip压缩
    gzip_min_length 1k;       

    #最小压缩文件大小
    gzip_buffers 4 16k;        

    #压缩缓冲区
    gzip_http_version 1.0;     

    #压缩版本
    gzip_comp_level 2;         

    #压缩等级
    gzip_types text/plain application/x-javascript text/css application/xml;

    #压缩类型
    gzip_vary on;              

    #启用应答头“Vary: Accept-Encoding”
    #
    include   vhosts/*.conf;                        

    #含一些其他的配置文件来完成你想要的功能,比如我想把每个虚拟主机单独放在一个文件里
    server                                           #虚拟主机的配置
    {
            listen       80;                        

    #被访问的ip地址及端口号,可以只指定一个ip,一个端口,或者一个可解析的服务器名
            server_name  localhost;                 

    #服务器的基本名称,默认名称为机器的hostname,多域名用空格隔开
            root   /data/web;                      

    #请求到达后的文件根目录,使用字段:http, server, location ,location中的if字段
            access_log  logs/host.access.log;      

    #为连接日志指定了路径,格式和缓冲区大小,如果没有指定日志格式,默认为“combined”
     
            location /                             

    #根据URI的不同需求来进行配置,匹配任何以 / 开始的查询
            {
                index  index.html index.htm index.php;

    #设置默认主页,以指定多个文件,如果第一个文件没有找到,将会查找后面指定的文件
            }
     
            #error_page  404              /404.html;  

    #为错误代码指定相应的错误页面
            error_page   500 502 503 504  /50x.html;
            
            location = /50x.html                       

    #根据URI的不同需求来进行配置,= 精确的匹配,只匹配 / 的查询    
            {
                root   html;                          

    #请求到达后的文件根目录,这个和上边的root功能相同,只是根目录文件夹不一样
            }

            location ~* .php$ {                      

    #根据URI的不同需求来进行配置,~* 不区分大小写匹配任何以php结尾的文件
                root           /data/web;             

    #网页文件存放的根目录
                fastcgi_pass   127.0.0.1:9000;        

    #指定FastCGI服务器监听端口与地址
                #fastcgi_pass   192.168.56.10:9000;    #可以是本机或者其它fastcgi服务器。
                fastcgi_index  index.php;              

    #文件名将追加到URI后面,这个值将存储在变量$fastcgi_script_name中
                fastcgi_param  SCRIPT_FILENAME  /data/web$fastcgi_script_name;
                #指定一些传递到FastCGI服务器的参数,SCRIPT_FILENAME参数决定需要执行哪个脚本
                include        fastcgi_params;         

    #含一些其他的配置文件来完成你想要的功能,包括 fastcgi_params文件
            }
    }

    虚拟主机
    nginx 可以配置多种类型的虚拟主机,1基于ip地址的虚拟主机,2基于域名的虚拟主机,3基于端口号的虚拟主机。
    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    server {
        listen       80;                              #端口号
        #listen      192.168.5.87:8080;               #Ip地址,这里加了端口号,也可以不加      
        server_name  somename  alias  another.alias;  #域名

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



    还可把它配置成 listen 80; 表示监听该服务器上的所有ip的 80端口,通过 server_name 来区分不同的虚拟主机。

    include   vhosts/*.conf; include指令 载入多个虚拟主机配置文档这样很方便,如果直接把多个虚拟主机添加到nginx.conf上则会很乱。

    每个vhost.conf 都包含一段 server{......},如果需要多个虚拟主机建立多个vhost*.conf 并写入 server{......}即可,比如下面这样。

    # cat conf/vhosts/test.com.conf 
    server    
    {
            listen       80;
            server_name  test.com;
            root   /data/web2;
            access_log  logs/test.com.access.log;
     
            location / 
            {
                index  index.html index.htm index.php;
            }
            ................ #部分省略
    }

  • 相关阅读:
    js_未结束的字符串常量
    [转]关于项目管理的思考
    Nhibernate理解
    Visual Studio 2005常用插件搜罗
    基本概念
    resharper 2.0
    Nhibernate资源
    [转]关于项目管理的知识点
    style
    带分数 蓝桥杯
  • 原文地址:https://www.cnblogs.com/CHEUNGKAMING/p/4383031.html
Copyright © 2011-2022 走看看