云服务器293元/年
阅读模式:

Nginx 配置文件详解

查看:1988  回复: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打印九九加法表   阅读:2999php设置cookie为HttpOnly防止XSS攻击   阅读:3976霍金24岁博士毕业论文在线预览   阅读:2023linux命令中执行php脚本   阅读:2443php生成二维码   阅读:2436shell发送邮件脚本   阅读:787shell脚本批量删除几天前的文件   阅读:3185企业让你去面试,可能不是真的招人   阅读:2509mysql5.7开启sql日志的配置   阅读:2916centos 7 安装 nginx-1.11.10   阅读:4048linux rarcrack破解rar、zip和7z压缩包简单密码的工具   阅读:4025php压缩页面的html代码一行显示   阅读:3010网站局部小图片优化-base64编码图片   阅读:3665web项目高并发量网站解决方案   阅读:1811PHP 鸟哥:我也曾经是“不适合”编程的人   阅读:3557纯干货,程序员面试的超实用技巧   阅读:1727比phpexcel还要简单的excel CSV 一键导入数据到数据库   阅读:2259php连接redis   阅读:2565php压缩页面的html代码一行显示   阅读:3010解决 nginx 413 request entity too large   阅读:1857session与cookie的区别   阅读:1933什么是天使轮?什么是A轮融资?B轮融资?   阅读:1508centos 7 添加 redis 3.2.9 开机启动脚本   阅读:4174给 centos 7 安装桌面环境   阅读:9911栈和堆的区别   阅读:1891php 使用 smtp.php 类在线发送邮件功能   阅读:2515centos 7 安装 nginx-1.11.10   阅读:4048centos 7 安装 redis 3.2.9   阅读:3132一键分享到QQ空间、QQ好友、新浪微博、微信代码   阅读:16418centos 7 开启网络   阅读:2208centos 7 安装 redis 3.2.9   阅读:3132php 生成图片,给图片加水印   阅读:2932php压缩页面的html代码一行显示   阅读:3010解决 nginx 413 request entity too large   阅读:1857shell脚本破解十位数内的所有纯数字rar加密压缩包脚本   阅读:3649移动端自适应rem原理   阅读:5793移动端js触摸touch详解(附带案例源码)   阅读:6307给php7安装redis扩展库   阅读:3029mysql共享锁和排他锁详解   阅读:2658mongodb设置shell开机启动脚本   阅读:3211php 统计网页打开耗时和脚本运行内存   阅读:2881centos7.3安装mongodb3.6   阅读:3323php生成二维码   阅读:2436ajax+php 实现一个简单的在线聊天室功能(附带源码)   阅读:3937php生成二维码   阅读:2436mysql数据一键导出到csv文件   阅读:2318php删除一个文件夹内的所有文件夹和文件   阅读:2374网站局部小图片优化-base64编码图片   阅读:3665php 统计网页打开耗时和脚本运行内存   阅读:2881移动端js触摸touch详解(附带案例源码)   阅读:6307