Nginx进程配置调优(nginx的进程)
nginx的进程
Linux每个应用运行都会产生一个进程,那么我们就可以通过查看Nginx进程是否存在来判断它是否启动。
1、有时想知道nigix是否在正常运行,需要用linux命令查看nginx运行情况。执行命令:ps -A | grep nginx。 如果返回结果的话,说明有nginx在运行,服务已经启动。如果不怕nginx关闭的话。也可以执行:service nginx restart。 把nginx服务重启,在重启时,也可以看到具体有没有什么地方出错。
2、看端口netstat -ntlp; 看进程ps -ef|grep nginx; 看日志是否更新tail -f access.log。
3、直接查看进程id:ps -C nginx -o pid。 这种直接返回pid的方式比较适合跟其他程序结合使用,比如在shell/python脚本中执行这个命令拿到pid,让后根据pid来判断Nginx是否启动。 推荐使用这种方式。
nginx进程管理
我的回答:nginx worker这种工作衍生进程数,一般等于CPU的总核心数或者总核数的两倍。比如两颗4核CPU处理器,那么总核数是8。
就在nginx.conf中设置worker_processes 8;
一般进程设置成CPU核心数的1-2倍合适。
nginx worker进程功能
nginx配置如下:
1、定义worker进程数:
worker_processes 10;
2、定义worker进程可同时服务请求数目:
worker_connections 1024;
3、禁止使用sendfile函数:
sendfile off;
4、开启空闲连接的文件检查:
linger_on_close on;
5、定义多个进程间通信存放文件路径及名称:
pid /var/run/nginx.pid;
6、定义用户和组:
user nobody nogroup;
7、定义worker进程数量:
worker_processes 10;
8、定义最大请求进程时间:
client_body_timeout 10;
9、定义服务的超时时间:
send_timeout 10;
10、打开目录列表功能:
autoindex on;
nginx的进程有几类
apache与nginx的区别:
最核心的区别在于apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别)可以对应一个进程 。nginx处理静态文件好,耗费内存少.但无疑apache仍然是目前的主流,有很多丰富的特性.所以还需要搭配着来.当然如果能确定nginx就适合需求,那么使用nginx会是更经济的方式。
nginx的负载能力比apache高很多。最新的服务器也改用nginx了。而且nginx改完配置能-t测试一下配置有没 有问题。
apache重启的时候发现配置出错了,会很崩溃,改的时候都会非常小心翼翼现在看有好多集群站,前端nginx抗并发,后端apache集群, 配合的也不错。
nginx处理动态请求是鸡肋,一般动态请求要apache去做,nginx只适合静态和反向。
nginx主进程
nginx的单机最大并发量大概在30万左右。Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好
nginx是多进程
区别有以下几点:
1、二者最核心的区别在于apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别)可以对应一个进程 。nginx处理静态文件好,耗费内存少.但无疑apache仍然是目前的主流,有很多丰富的特性.所以还需要搭配着来.当然如果能确定nginx就适合需求,那么使用nginx会是更经济的方式。
2、nginx的负载能力比apache高很多。最新的服务器也改用nginx了。而且nginx改完配置能-t测试一下配置有没 有问题。
3、apache重启的时候发现配置出错了,会很崩溃,改的时候都会非常小心翼翼现在看有好多集群站,前端nginx抗并发,后端apache集群, 配合的也不错。
4、nginx处理动态请求是鸡肋,一般动态请求要apache去做,nginx只适合静态和反向。
5、从经验来看,nginx是很不错的前端服务器,负载性能很好,nginx,用webbench模拟10000个静态文件请求毫不吃力。 apache对php等语言的支持很好,此外apache有强大的支持网络,发展时间相对nginx更久,bug少但是apache有先天不支持多核心处理负载鸡肋的缺点,建议使用nginx做前端,后端用apache。大型网站建议用nginx自代的集群功能。
6、大部分情况下nginx都优于APACHE,比如说静态文件处理、PHP-CGI的支持、反向代理功能、前端 Cache、维持连接等等。在Apache+PHP(prefork)模式下,如果PHP处理慢或者前端压力很大的情况下,很容易出现Apache进程数 飙升,从而拒绝服务的现象。
7、Apache在处理动态有优势,Nginx并发性比较好,CPU内存占用低,如果rewrite频繁,那还是Apache吧!
8、一般来说,需要性能的web 服务,用nginx 。如果不需要性能只求稳定,那就apache 吧。
以上就是我的回答,希望可以帮助题主。
nginx的进程模型
Flask ,Django 自带的web server的目的就是用于开发,而不是生产环境。他们俩本身是web framework而不是web server. 他们自带的server应该都只能开单进程。
而像gunicorn是 prefork模式,从nginx每发过来一个请求,它就fork一个进程去处理这个请求,并buffer相关的数据。
wsgi服务器都是专门为生产环境 开发的,能配置更多从而处理更复杂的请求状况,从性能和稳定性来说,都更好。
本网站文章仅供交流学习 ,不作为商用, 版权归属原作者,部分文章推送时未能及时与原作者取得联系,若来源标注错误或侵犯到您的权益烦请告知,我们将立即删除.