当前位置:首页 > 教程 > 正文内容

nginx守护进程启动(nginx维护)

2023-05-07 23:40:07教程1

nginx守护进程启动

一:启动Nginx服务--在sbin目录下

启动命令:./nginx

关闭命令:./nginx-sstop和./nginx-squit

刷新配置文件:./nginx-sreload (每次对Nginx的配置文件nginx.conf修改后,都要进行重新加载配置文件)

二:进程

查看进程ps-ef|grep-ixxxx -i 大概是ignore 是忽略的意思这里是忽略大小写。

杀死进程kill-9xxxx

三:防火墙

开启防火墙serviceiptablesstart

关闭防火墙serviceiptablesstop

查看防火墙的状态serviceiptablesstatus

永久关闭防火墙chkconfigiptablesoff

四:启动zookeeper服务--在zookeeper的bin目录下

开启zookeeper服务:./zkServer.shstart

查看zookeeper状态 ./zkServer.shstatus

五:启动Redis服务--在redis的bin目录下

以后台的方式启动:./redis-server ../redis.conf(后面的的redis.conf路径要根据每个人配置文件存放的位置来写)

进入redis命令服务:./redis-cli

输入:ping 如果返回pong 则表示连接成功!

六.启动tomcat服务

Linux下tomcat服务的启动、关闭与错误跟踪,使用PuTTy远程连接到服务器以后,通常通过以下几种方式启动关闭tomcat服务:

切换到tomcat主目录下的bin目录(cd usr/local/tomcat/bin)

1,启动tomcat服务

方式一:直接启动 ./startup.sh

方式二:作为服务启动 nohup ./startup.sh &

方式三:控制台动态输出方式启动 ./catalina.sh run 动态地显示tomcat后台的控制台输出信息,Ctrl+C后退出并关闭服务

解释:

通过方式一、方式三启动的tomcat有个弊端,当客户端连接断开的时候,tomcat服务也会立即停止,通过方式二可以作为linux服务一直运行

通过方式一、方式二方式启动的tomcat,其日志会写到相应的日志文件中,而不能动态地查看tomcat控制台的输出信息与错误情况,通过方式三可以以控制台模式启动tomcat服务,

直接看到程序运行时后台的控制台输出信息,不必每次都要很麻烦的打开catalina.out日志文件进行查看,这样便于跟踪查阅后台输出信息。tomcat控制台信息包括log4j和System.out.println()等输出的信息。

2,关闭tomcat服务

./shutdown.sh

七>启动数据库:

service mysqld start 启动

service mysqld restart 重启

nginx维护

k8s是一个开源的容器集群管理系统,可以实现容器集群的自动化部署、自动扩缩容、维护等功能,就是k8s可以用来管理docker,

Nginx是一个高性能的 HTTP 和反向代理服务器, k8s可以用来管理nignx服务器

nginx启动状态

进入Nginx很简单。具体方法如下:首先需要安装Nginx,你可以通过官网下载相应的安装包进行安装;安装完成后,启动Nginx,可以通过输入命令“sudo /etc/init.d/nginx start”或“sudo service nginx start”来启动Nginx;然后在浏览器中输入服务器的IP地址或域名,就可以进入Nginx默认的欢迎页面了。此外,你还可以在Nginx配置文件中进行一些设置,比如更改欢迎页面的内容、设置反向代理等。

nginx守护进程启动 命令

我的回答:nginx worker这种工作衍生进程数,一般等于CPU的总核心数或者总核数的两倍。比如两颗4核CPU处理器,那么总核数是8。

就在nginx.conf中设置worker_processes 8;

一般进程设置成CPU核心数的1-2倍合适。

nginx状态监控

TCP 配置是 Nginx 中一个比较关键的属性,它可以控制 Nginx 传输协议。当配置 Nginx 时,需要注意以下几点:

1. Nginx 中的 tcp 配置有三个参数:接收缓冲区大小(rcvbuf)、发送缓冲区大小(sndbuf)和最后一次活动(linger)。

2. 接收缓冲区和发送缓冲区的大小的单位都是字节,且一般都要大于或等于4K,通常情况下,接收缓冲区要大于发送缓冲区。

3. linger 有三个属性,即: on(开启)、off(关闭)和 timeout(超时),当开启时,Nginx 在服务器关闭连接之前,会将发送缓冲区中的未完成数据发送出去,而 timeout 属性则可以设定超时时间,默认超时时间为0,即Nginx不会考虑超时时间。

4. 在配置 Nginx 时,要根据实际情况调整 tcp 参数,以获得最佳性能。

nginx 守护进程

Nginx的工作模式很简单,就是采用一个master进程和多个worker工作进程,其中master进程的作用也是很明确的就是负责管理worker进程,同时监听连接请求,当连接请求到来之后将连接放入worker进程中去处理具体的业务请求,比如说http请求。

Nginx能够处理高并发的原因在于对socket的管理方式是异步非阻塞的,使用select/poll/epoll/kqueue 来实现对大量socket描述符的管理,每个worker进程有一个主线程,而没有其他的线程这样的好处就在于不需要进行线程间的切换,这样就节省了资源。

所以总的来说:Nginx能够实现支持高并发的同时运行效率还很低的关键在于整个系统内部只有有限的几个工作进程和一个监听进程,而每个进程内部只有一个主线程,这样就不会引起很多的线程切换,从而降低了系统开销,同时每个线程内部使用异步非阻塞的方式来管理描述符这样就可以管理大量的描述符,当描述符多的时候也只是会占用较多的内存而已,而不会造成占用大量cpu时间。

以上说的就是Nginx的进程模型和事件模型,事件模型中处理的情况主要有三种,分别是网络事件,如HTTP请求等,网络事件使用异步非阻塞模式就可以很好的解决;还有信号,定时器,信号和定时器还不是很明白。

Nginx处理进程间争夺系统资源的方式:也就是进程间存在的惊群现象。

nginx防护

没什么方法的,网上的几种方法我试过了,虽然可以防止跨目录,但是中国菜刀的虚拟终端照样可以用shell命令访问root以外的所有目录

nginx进程管理

Python Web 程序的部署方案

综合而言, 高性能的Python web站点部署方式首推 nginx + uwsgi

apache + mod_wsgi 是简单稳定但性能一般的方式

API服务器 可以直接使用tornado或者gevent

mod_python

非常原始的cgi模式部署python已经没有什么好介绍了。对于不太追求性能的管理系统和网站来说,使用 Apache 部署是一个不错的选择。较早的时候,使用 mode_python 部署python的web应用十分流行,在Django 0.96 的时候官方文档甚至推荐这种方式。

它将Python解释器嵌入到Apache server,以提供一个访问Apache server内部的接口。mod_python 在现在看来性能是不佳的,每一个http请求 mod_python 都会由一个进程初始化python解释器、载入代码、执行、然后销毁进程。

mod_wsgi

如果非要用Apache来部署python应用,mod_wsgi是一个更好的选择。WSGI 全称是 Web Server Gateway Interface ,由 PEP-333 定义。 基本上所有的python web框架都实现了wsgi接口,用mod_wsgi 能部署任何实现了wsgi的框架。实际上,不需要任何框架也可以用mod_wsgi 部署python程序。使用mod_wsgi的daemon模式,python程序会常驻内存,不会有很大的初始化和销毁进程方面的开销,所以性能是好于mod_python的。综合来说,使用Apache部署python web程序,推荐使用mod_wsgi的daemon模式。

Fastcgi

先说观点:不建议用fastcgi的方式部署Python web。

前几年由于lighttpd风头正劲和豆瓣的成功案例,fastcgi是一种很流行的部署方式。fastcgi与具体语言无关,也与web服务器无关。是一种通用的部署方式。fastcgi是对于cgi的增强,CGI程序运行在独立的进程中,并对每个Web请求建立一个进程。面对大量请求,进程的大量建立和消亡使操作系统性能大大下降。

与为每个请求创建一个新的进程不同,FastCGI使用持续的进程来处理一连串的请求。这些进程由FastCGI服务器管理,而不是web服务器。 当进来一个请求时,web服务器把环境变量和这个页面请求通过一个socket比如FastCGI进程与web服务器都位于本地)或者一个TCP connection(FastCGI进程在远端的server farm)传递给FastCGI进程。

主流的web服务器,Apache,lighttpd,nginx 都支持fastcgi,在几年前,lighttpd的mod_fcgi模块性能强劲,lighttpd+fastcgi十分流行。无论是python,ruby还是php,都有大量的站点使用这种方式部署。由于nginx的崛起,现在很少有人使用lighttpd了。

fastcgi 并不是专门为python设计,并不是所有的python框架天然的支持fastcgi,通常需要flup这样的容器来配适。flup由python编写,和专门的c实现的wsgi容器比起来性能显得相当不堪。fastcgi的稳定性对于新兴的wsgi容器来说也有差距。无论从哪个方面来看,部署python web程序,fastcgi 都已经是过去式。

uwsgi

前几年nginx还未内置uwsgi模块的时候,部署uwsgi还是一件挺麻烦的事情。随着能够在nginx中直接使用uwsgi模块,uwsgi已经是最可靠,最方便的高性能python web程序的部署方式了。

在1U的四核XEON服务器上,一个简单的wsgi handler甚至能用AB压到8000以上的qps,这已经是完爆tornado,接近gevent的性能了。 同时,uwsgi的稳定性极好。之前我们有个每天500w-1000w动态请求的站点使用uwsgi部署非常稳定,在一个渣HP 1U 服务器上,基本不用管它。

上面提到的部署方式都是相对于web网站的方式,在移动互联网的时代,我们需要的是高性能的API服务,上面这些都是过时的东西。

tornado

tornado 号称高性能,如果拿他写网站,其实一般般,只不过跟uwsgi加一些简单框架差不多而已。它真正的作用,是用来写API服务器和长连接的服务器。

由于tornado能够直接处理http请求,很多人直接拿他来裸奔直接提供服务。这种方式是不可取的,单线程的tornado只能利用cpu的一个核心,并且一旦阻塞直接就废了。通常情况下,由supervisor启动多个tornado进程,通过nginx进行反向代理负载均衡。nginx 1.14 以后的版本反向代理支持长连接,配合tornado的comet效果很好。

tornado还有一些比较奇葩的用法,比如用来做wsgi容器之类的。

gevent

gevent是一个神器,能做的事情很多。在web方面,处理http请求,用起来其实跟tornado差不多,但是要简陋很多,cookie之类的都没有。用gevent写的一些API服务,部署方式还是类似tornado,用supervisor管理多个守护进程,通过nginx做负载均衡。 同样的它的奇葩用法也和tornado一样,可以当wsgi容器用。

本网站文章仅供交流学习 ,不作为商用, 版权归属原作者,部分文章推送时未能及时与原作者取得联系,若来源标注错误或侵犯到您的权益烦请告知,我们将立即删除.

本文链接:https://www.xibujisuan.cn/98822528.html