阅读模式:

Nginx 配置文件详解

查看:2535  回复:0  类型:  来源:php自学网  标签 nginx

    Nginx 配置文件/usr/local/nginx/conf/nginx.conf可以做很多事情,比如对服务器性能的调优,对蜘蛛抓取优化的伪静态设置和运维必备的日志记录等设置的操作。

#定义nginx运行的用户和用户组
user  www www;

#设置nginx进程数,一般设置为cpu核心数,auto为自动检测
worker_processes  auto;

#全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]
error_log  logs/error.log;
error_log  logs/error.log  notice;
error_log  logs/error.log  info;

#守护进程pid文件
pid        logs/nginx.pid;

#events模块中包含nginx中所有处理连接的设置
events {
    #单个进程最大连接数(最大连接数=连接数*进程数)
    worker_connections  2048;
    #设置nginx收到一个新链接通知后接受尽可能多的链接
    multi_accept on;
    #设置用于复用客户端线程的轮训方法
    use epoll;
}

#http模块控制着nginx http处理的所有核心特性
http {
    #文件扩展名与文件类型映射表
    include       mime.types;

    #默认文件类型
    default_type  application/octet-stream;

    #打开或关闭错误页面中的nginx版本号deng
    server_tokens on;

    #设置nginx是否存储访问日志,关闭这个可以让读取磁盘IO操作更快
    access_log on;

    #服务器名字的hash表大小
    #保存服务器名字的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的提示,
    #那么首要的是增大前一个参数的大小.
    server_names_hash_bucket_size 128;

    #客户请求头缓冲大小。nginx默认会用client_header_buffer_size这个buffer来读取header值,
    #如果header过大,它会使用large_client_header_buffers来读取。
    large_client_header_buffers 4 64k;

    #设定通过nginx上传文件的大小
    client_max_body_size 8M;

    #缓冲区代理缓冲用户端请求的最大字节数,
    #如果把它设置为比较大的数值,例如256k,那么,无论使用firefox还是IE浏览器,
    #来提交任意小于256k的图片,都很正常。如果注释该指令,使用默认的client_body_buffer_size设置,
    #也就是操作系统页面大小的两倍,8k或者16k,问题就出现了。
    
    client_body_buffer_size 128k;

    #开启高效文件传输模式,优化磁盘IO设置
    sendfile        on;

    #设置nginx在一个数据包里发送所有头文件,而不是一个接一个的发送
    tcp_nopush     on;

    # HTTP1.1支持持久连接alive
    # 降低每个连接的alive时间可在一定程度上提高可响应连接数量,所以一般可适当降低此值
    keepalive_timeout  60;

    #设置代理服务器(nginx)保存用户头信息的缓冲区大小
    #设置从被代理服务器读取的第一部分应答的缓冲区大小,通常情况下这部分应答中包含一个小的应答头,
    #默认情况下这个值的大小为指令proxy_buffers中指定的一个缓冲区的大小,不过可以将其设置为更小
    proxy_buffer_size 4k;

    #proxy_buffers缓冲区,网页平均在32k以下的设置
    #设置用于读取应答(来自被代理服务器)的缓冲区数目和大小,默认情况也为分页大小,
    #根据操作系统的不同可能是4k或者8k
    proxy_buffers 4 32k;

    #高负荷下缓冲大小(proxy_buffers*2)
    proxy_busy_buffers_size 64k;

    #设置在写入proxy_temp_path时数据的大小,预防一个工作进程在传递文件时阻塞太长
    #设定缓存文件夹大小,大于这个值,将从upstream服务器传
    proxy_temp_file_write_size 64k;

    gzip  on;
    #加vary给代理服务器使用,针对有的浏览器支持压缩,有个不支持,
    #根据客户端的HTTP头来判断是否需要压缩
    #gzip_vary on;

    # 过短的内容压缩效果不佳,压缩过程还会浪费系统资源
    gzip_min_length 1000;

    #允许或禁止压缩基于请求和相应的响应流,any代表压缩所有请求
    gzip_proxied any;

    #==设置数据压缩等级,1-9之间,9最慢压缩比最大
    gzip_comp_level 9;

    #设置需要压缩的数据格式
    gzip_types text/plain text/css text/xml text/javascript application/json 
    application/x-javascript application/xml application/xml+rss;

    # 静态文件缓存
    # 最大缓存数量,文件未使用存活期
    open_file_cache max=65535 inactive=20s;
    # 验证缓存有效期时间间隔
    open_file_cache_valid 30s;
    # 有效期内文件最少使用次数
    open_file_cache_min_uses 3;

    #虚拟主机配置
    server {
        listen       80;

        #多域名用空格隔开
        server_name  localhost zixuephp.net www.zixuephp.net;

        #设置默认访问首页
        index index.php index.html;

        #默认编码
        charset utf-8;


        #定义本虚拟主机的访问日志
        access_log  logs/access.log;

        #错误也设置
        error_page   500 502 503 504  /404.html;
        location = /404.html {
            root   html;
        }

        #图片缓存
        location ~ .*.(gif|jpg|jpeg|png|bmp|swf|js|css)$ {
            expires       7d;
        }


        #网站伪静态
        location / {
            rewrite "^/index.html$" /index.php last;
            rewrite "^/iphp.html$" /iphp.php last;
            rewrite "^/login.html$" /login.php last;
            rewrite "^/post.html$" /post.php last;
            rewrite "^/article.html$" /article.php last;
            rewrite "^/article-([0-9]+).html$" /article.php?aid=$1 last;
            rewrite "^/iphp-([0-9]+)-([0-9]+).html$" /iphp.php?mid=$1&cid=$2 last;
            rewrite "^/iphp-([0-9]+)-page([0-9]+).html$" /iphp.php?mid=$1&page=$2;
            rewrite "^/iphp-c([0-9]+)-page([0-9]+).html$" /iphp.php?cid=$1&page=$2;
            rewrite "^/search.html$" /search.php;
        }


        #nginx解析php脚本
        location ~ .php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;
            include        fastcgi_params;
            index          index.php index.html;

        }
    }

}

性能优势:
    web服务器,处理静态文件、索引文件以及自动索引效率高。
    代理服务器,快速高效反向代理,提升网站性能。
    负载均衡器,内部支持Rails和PHP,也可支持HTTP代理服务器,对外进行服务。同时支持简单容错和利用算法进行负载均衡。
    性能方面,Nginx专门为性能设计,实现注重效率。采用Poll模型,可以支持更多的并发连接,并在大并发时占用很低内存。
    稳定性方面,采用分阶段资源分配技术,使CPU资源占用率低。
    高可用性方面,支持热备,启动迅速。

nginx配置文件详解文章推荐:http://blog.csdn.net/hzsunshine/article/details/63687054


推荐:最新centos7 搭建LNMP环境(centos7.2+php7+mysql5.7+nginx1.11+redis3.2)


分享到:
0 0

*有问题之处烦请在评论中指出非常感谢!
不是我想要的内容,继续搜索:

扫描二维码手机查看

发布评论:


登录:
  表情:
评论话题
推荐阅读:
php 使用 smtp.php 类在线发送邮件功能   阅读:3169PHP 鸟哥:我也曾经是“不适合”编程的人   阅读:4352nginx编译安装后对nginx进行平滑升级   阅读:1750一键分享到QQ空间、QQ好友、新浪微博、微信代码   阅读:22160mysql数据库性能的基本优化   阅读:2607centos 7 设置 nginx-1.11.10 开机启动   阅读:4532简单的DOS攻击之死亡之ping详解   阅读:21854PHP 鸟哥:我也曾经是“不适合”编程的人   阅读:4352程序员找工作三要素(必看)   阅读:2917php设置cookie为HttpOnly防止XSS攻击   阅读:5762十张GIF让你弄懂递归等概念   阅读:3075php冒泡排序法   阅读:4853linux top命令详解   阅读:3873知乎百万赞作者告诉你:年薪百万的人都在靠什么赚钱   阅读:3167最新centos7 搭建LNMP环境(centos7.2+php7+mysql5.7+nginx1.11+redis3.2)   阅读:6443linux rarcrack破解rar、zip和7z压缩包简单密码的工具   阅读:5934mysql5.7主从同步中binlog同步模式详解   阅读:341mysql5.7开启sql日志的配置   阅读:4022phpexcel 超简单从数据库一键导出数据到excel教程   阅读:3942php 获取当前前后年、月、星期、日、时分秒的时间   阅读:3056php 读取和设置redis的键值   阅读:4271用php从1乘到100的值   阅读:3454程序员找工作三要素(必看)   阅读:2917移动端js触摸touch详解(附带案例源码)   阅读:8338php文件下载防盗链   阅读:5125web性能测试工具ab的测试方法   阅读:2609面试的时候和你谈理想,是理想or入坑?   阅读:4383javascript点击复制内容   阅读:3092TCP的三次握手(建立连接)和四次挥手(关闭连接)   阅读:464php删除一个文件夹内的所有文件夹和文件   阅读:2854mysql5.7开启sql日志的配置   阅读:4022centos 7搭建zabbix3.4   阅读:2216php 生成图片,给图片加水印   阅读:3314纯干货,程序员面试的超实用技巧   阅读:2086mysql5.7主从同步配置   阅读:230php打印三角形   阅读:822mysql数据一键导出到csv文件   阅读:2973php压缩页面的html代码一行显示   阅读:3946php冒泡排序法   阅读:4853解决 nginx 413 request entity too large   阅读:2314“米粉节”背后的故事——小米网抢购系统开发实践   阅读:2223javascript对cookie操作详细代码函数   阅读:2630mysql数据一键导出到csv文件   阅读:2973移动端自适应rem原理   阅读:6590移动端js触摸touch详解(附带案例源码)   阅读:8338web性能测试工具ab的测试方法   阅读:2609小米手机端商城rem适配原理   阅读:4288php冒泡排序法   阅读:4853栈和堆的区别   阅读:2415给 centos 7 安装桌面环境   阅读:11744