Nginx配置文件的理解

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

worker_processes  auto;     #nginx进程数,建议设置为等于CPU总核心数,这里auto为自动调整的意思

worker_cpu_affinity auto;   #对于具有多颗CPU的服务器,Nginx通过设置worker_cpu_affinity参数,即可轻松实现控制进程平均分配到多颗CPU上

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

google_perftools_profiles /tmp/tcmalloc;   #gperftools优化nginx

worker_rlimit_nofile 102400;      #每个nginx进程打开文件描述符最大数目 配置要和系统的单进程打开文件数一致,linux 2.6内核下开启文件打开数为65535,worker_rlimit_nofile就相应应该填写65535,nginx调度时分配请求到进程并不是那么的均衡,假如超过会返回502错误。可以把数值写大一点。

pid        /usr/local/nginx/nginx.pid; #
events {
use epoll;
worker_connections  102400;
}
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"';
server_names_hash_bucket_size 128;    #服务器名字的哈希(hash)表大小
client_header_buffer_size 32k;   #上传文件大小限制
large_client_header_buffers 4 32k;    #设定请求缓
client_max_body_size 300m;   #设定请求缓
sendfile        on;  #开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。
proxy_ignore_client_abort on;   # 告诉nginx不要主动关闭连接
tcp_nopush     on;              #启用后数据包不会马上传送出去,等到数据包最大时,一次性的传输出去,这样有助于解决网络堵塞
proxy_connect_timeout 500;      #nginx跟后端服务器连接超时时间(代理连接超时)
proxy_send_timeout 600;         #后端服务器数据回传时间(代理发送超时)
proxy_read_timeout 500;         #连接成功后,后端服务器响应时间(代理接收超时)
proxy_buffer_size 16k;          #设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers 4 64k;            #proxy_buffers缓冲区,网页平均在32k以下的设置
proxy_busy_buffers_size 128k;   #高负荷下缓冲大小(proxy_buffers*2)
proxy_temp_file_write_size 128k;    #设定缓存文件夹大小,大于这个值,将从upstream服务器传
keepalive_timeout  10;          #设置客户端连接保存活动的超时时间 设置为多少,要看网站的流量、服务器的配置而定。 因为设置太短,就会频繁的连接,消耗过多的资源,如果连接时间过长,就会有很多没用连接来占用服务器资源。
client_header_timeout 10;       #用于设置客户端请求读取超时时间 
client_body_timeout 10;         #用于设置客户端请求主体读取超时时间 
send_timeout 10;                #用于设置相应客户端的超时时间 
tcp_nodelay on;
server_tag off;                 #隐藏server头部
server_info off;                #错误信息
server_tokens off;              #隐藏nginx的版本号
gzip  on;                        #开启gzip压缩 
gzip_min_length  1k;             #设置允许压缩的页面最小字节数 
gzip_buffers     4 16k;          #申请4个单位为16K的内存作为压缩结果流缓存 
gzip_http_version 1.1;           #设置识别http协议的版本,默认是1.1 
gzip_comp_level 2;               #指定gzip压缩比,1-9 数字越小,压缩比越小,速度越快.
gzip_types       text/plain application/x-javascript text/css application/xml application/json;          #指定压缩的类型 
gzip_vary on;                      #让前端的缓存服务器存经过gzip压缩的页面
gzip_disable "MSIE [1-6].";        #意思就是在ie1-ie6环境下禁用gzip
server {
    listen 84;
    server_name _;
    location / {
      stub_status on;
      access_log off;
    }
}
       upstream tomcat {
    server 127.0.0.1:8080;
    check interval=3000 rise=2 fall=5 timeout=1000 type=http;
    check_http_send "GET /favicon.ico HTTP/1.0\r\n\r\n";
    check_http_expect_alive http_2xx http_3xx;
    }
    include  vhost/*.conf;
    }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Vamei实验室

Mac OSX网络诊断命令

下面是一些Mac OSX下常用的网络诊断命令。它们能帮助我们发现网络问题。文中提到的协议和网络通信原理,可参考协议森林。 有些工具,如arping, arp-s...

1929
来自专栏我的博客

zendframework中render,forward,redirect区别

1.render $this->render(‘my’);//注意没有.phtml 这样会在当前控制器下的my.phtml(也就是views/scripts...

3365
来自专栏程序员互动联盟

【编程基础】初学者如何学习Linux网络

1. Linux网络编程--网络知识介绍 网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端. 1.1 客户端 在网络程序中,...

30013
来自专栏乐沙弥的世界

HTTP 简明基础知识

511
来自专栏IT笔记

Nginx学习之HTTP/2.0配置

哎呀,一不小心自己的博客也是HTTP/2.0了,前段时间对网站进行了https迁移并上了CDN,最终的结果是这酱紫的(重点小绿锁,安全标示以及HTTP/2.0请...

35314
来自专栏测试开发架构之路

计算机网络基础知识笔记(二)

  IP层转发分组的流程 有四个 A 类网络通过三个路由器连接在一起。每一个网络上都可能有成千上万个主机。 可以想像,若按目的主机号来制作路由表,则所得出的路由...

2736
来自专栏软件开发 -- 分享 互助 成长

wareshark网络协议分析之DHCP

声明:本文关于DHCP协议介绍部分摘自百度百科 一、DHCP协议介绍:     DHCP(Dynamic Host Configuration Protocol...

2169
来自专栏LanceToBigData

TCP/IP(六)应用层(DNS和HTTP协议)

前言 到这一篇我已经把TCP/IP五层模型详细的说明了一遍,大体的从物理层到最上层的应用层做了一个大概的了解,其实总体学下来东西非常的多,我们需要经常的去系统性...

2306
来自专栏我爱编程

Day23网络编程

TCP编程 Socket是网络编程的一个抽象概念。通常我们用一个Socket表示“打开了一个网络链接”,而打开一个Socket需要知道目标计算机的IP地址和端口...

2814
来自专栏JAVA同学会

初试spring-session

  它将取代容器中的HttpSession。在没有容器会话集群方案的情况下,使得支持会话集群微不足道。

602

扫码关注云+社区