nginx基本配置与参数说明
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
#运行用户 user nobody; #启动进程,通常设置成和cpu的数量相等 worker_processes 1; #全局错误日志及PID文件 #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; #工作模式及连接数上限 events { #epoll是多路复用IO(I/O Multiplexing)中的一种方式, #仅用于linux2.6以上内核,可以大大提高nginx的性能 use epoll; #单个后台worker process进程的最大并发链接数 worker_connections 1024; # 并发总数是 worker_processes 和 worker_connections 的乘积 # 即 max_clients = worker_processes * worker_connections # 在设置了反向代理的情况下,max_clients = worker_processes * worker_connections / 4 为什么 # 为什么上面反向代理要除以4,应该说是一个经验值 # 根据以上条件,正常情况下的Nginx Server可以应付的最大连接数为:4 * 8000 = 32000 # worker_connections 值的设置跟物理内存大小有关 # 因为并发受IO约束,max_clients的值须小于系统可以打开的最大文件数 # 而系统可以打开的最大文件数和内存大小成正比,一般1GB内存的机器上可以打开的文件数大约是10万左右 # 我们来看看360M内存的VPS可以打开的文件句柄数是多少: # $ cat /proc/sys/fs/file-max # 输出 34336 # 32000 < 34336,即并发连接总数小于系统可以打开的文件句柄总数,这样就在操作系统可以承受的范围之内 # 所以,worker_connections 的值需根据 worker_processes 进程数目和系统可以打开的最大文件总数进行适当地进行设置 # 使得并发总数小于操作系统可以打开的最大文件数目 # 其实质也就是根据主机的物理CPU和内存进行配置 # 当然,理论上的并发总数可能会和实际有所偏差,因为主机还有其他的工作进程需要消耗系统资源。 # ulimit -SHn 65535 } http { #设定mime类型,类型由mime.type文件定义 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"'; access_log logs/access.log main; #sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件, #对于普通应用,必须设为 on, #如果用来进行下载等应用磁盘IO重负载应用,可设置为 off, #以平衡磁盘与网络I/O处理速度,降低系统的uptime. sendfile on; #tcp_nopush on; #连接超时时间 #keepalive_timeout 0; keepalive_timeout 65; tcp_nodelay on; #开启gzip压缩 gzip on; gzip_disable "MSIE [1-6]."; #设定请求缓冲 client_header_buffer_size 128k; large_client_header_buffers 4 128k; #设定虚拟主机配置 server { #侦听80端口 listen 80; #定义使用 blog.redis.com.cn访问 server_name blog.redis.com.cn; #定义服务器的默认网站根目录位置 root html; #设定本虚拟主机的访问日志 access_log logs/nginx.access.log main; #默认请求 location / { #定义首页索引文件的名称 index index.php index.html index.htm; } # 定义错误提示页面 error_page 500 502 503 504 /50x.html; location = /50x.html { } #静态文件,nginx自己处理 location ~ ^/(images|javascript|js|css|flash|media|static)/ { #过期30天,静态文件不怎么更新,过期可以设大一点, #如果频繁更新,则可以设置得小一点。 expires 30d; } #PHP 脚本请求全部转发到 FastCGI处理. 使用FastCGI默认配置. location ~ .php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } #禁止访问 .htxxx 文件 location ~ /.ht { deny all; } } } |
请问windows系统应该使用什么工作模式呢?
对于不想付出,只想抱怨的,只能送你:走好不送。
啥玩意还要关注公众号。
@ frankwong
这是建立了四个链接,是四个单工的还是4个双工的?
@skd
4是worker_processes(即进程数量),8000为worker_connections(即线程)
“正常情况下的Nginx Server可以应付的最大连接数为:4 * 8000 = 32000” ,请问这里的4和8000是从哪里来的?
@求解
同问,求解
设置权重一样的话,还不如不设置
@lolo
ddddd
@ntaq
在反向代理的NGINX 服务器打开multi_accept on;,后端nginx不要打开;
ulimit -n 65535;ulimit -u 100000 均设置这些内核参数
webbench 模拟10000客户链接 30S 下面是结果:Requests: 385670 susceed, 0 failed.
模拟环境vmware 12 ;os Ubuntu 17.04 server;nginx反向代理1台,nginx 5台
在做nginx服务的压力测试,将worker_processes设置成4,worker_connections 设置成65536,系统ulimit设置成65535,理论值最大并发数是260000左右,测试是244000,当将worker_processes 设置成8 或24 时,测试的最大并发数仍然是244000。物理机是24核的,8G内存,千兆网卡。请问我想继续提高最大并发量该如何配置
我的网站就是使用nginx平台,处理静态页面速度很快,占用内存也很小
过来瞅瞅!
感觉作者应该把root的值定为:/path/to/webroot 似更恰当些。
你好,请问如何做一个nginx stub_status 多个站点分开统计?
静态资源的配置有点不太明白。
例如:原网站下有images(images下还有子文件夹),scripts(scripts下还有子文件夹),该如何配置?
设置好root,root可以看做域名,域名后面路径是root路径里的文件夹、文件
# 根据以上条件,正常情况下的Nginx Server可以应付的最大连接数为:4 * 8000 = 320
4 与 8000 这两个值 是从哪里来的??
想问下在设置php的地方
“ location ~ .php$ ”
拦截的正则是不是写的不对,感觉应该写为
“location ~ .php$”
新版nginx已经很好的配置好了fastcgi_params了,千万不要再配置
“fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;”
了!!
那应该怎么配置?
fastcgi_param SCRIPT_FILENAME $request_filename;
请教下,如何使用nginx做soap服务器?
我现在配置nginx为soap服务器后,通过soapui发送消息给nginx,nginx返回两个报文,一个200,一个400.感觉是nginx将一个soap请求作为两个报文来处理了
请问解决了吗?我也碰到类似问题无法解决
没有解决!
不知道什么原因引起的,不确定是不是Linux自己本身解包有问题导致的。
注意Nginx的对http header参数,参数名称不能有下划线_,比如参数p_user_name错误,正确应为pUserName
我用soapui访问不了nginx,跳过nginx直接访问tomcat就可以,请问你知道原因吗?
typecho安装在wp的二级目录下有没有配置文件呢?
怎么设置error.log的记录格式啊?
error_log logs/nginx.error.log;
了解
这个系统很适合老鸟,而且很适合门户网站
文章骂死看到有个小失误,如
#设定日志格式
access_log /var/log/nginx/access.log;
此处应该是设置存取日志路径吧
访问日志 听着更舒服~
反向代理的的情况下最大连接数为什么要除以4, 具体可以参考Nginx wiki部分
worker_connections
Syntax: worker_connections number
Default:
The worker_connections and worker_proceses from the main section allows you to calculate maxclients value:
max_clients = worker_processes * worker_connections
In a reverse proxy situation, max_clients becomes
max_clients = worker_processes * worker_connections/4
Since a browser opens 2 connections by default to a server ,and nginx uses the fds (file descriptors) from the same pool to connect to the upstream backend .
每个成功的请求会建立4个链接。1.browser->nginx 2. nginx-upstream 3.upstream->nginx 4.nginx->browser
怎么解决nginx负载不均衡问题 我使用的是权轮询 设置的权重都是一样的
设置权重一样的话,还不如不设置