启动
要启动Nginx服务,需遵循特定的代码格式。请使用以下格式的命令:nginx安装目录地址 -c nginx配置文件地址。
例如,在Linux服务器上的操作如下:
[root@LinuxServer sbin] /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
停止
Nginx的停止有三种方式可供选择。
从容停止
- 通过以下命令查看Nginx进程号:
- 然后,根据获取的进程号进行下一步操作。
[root@LinuxServer ~] ps -ef | grep nginx
快速与强制停止
可以直接使用以下命令快速停止Nginx服务:
[root@LinuxServer ~] pkill -9 nginx
重启
在重启Nginx服务前,建议先验证配置文件的正确性。
方法一:进入nginx安装目录的sbin下,执行命令./nginx -t。如果看到“nginx.conf syntax is ok”以及“nginx.conf test is successful”的提示,则说明配置文件无误。
方法二:在启动命令的-c前加上-t选项。
接下来,可以使用以下两种方法之一来重启Nginx服务:
方法一:在sbin目录下执行命令./nginx -s reload。
方法二:先查找当前的nginx进程号,然后执行命令:kill -HUP 进程号。
Nginx的工作机制与高性能实现
Nginx内含一个master进程和多个worker进程。master进程主要负责加载配置、启动worker进程及进行非停升级等管理工作,而worker进程则负责处理网络请求与响应。
Master进程的四个主要功能包括:
- 接收外界信号。
- 向各worker进程发送信号。
- 监控worker进程的运行状态。
- 当worker进程异常退出后,自动重新启动新的worker进程。
Worker进程之间彼此独立且对等,他们竞争来自客户端的请求。每个请求只会在一个worker进程中处理,且一个worker进程不会处理其他进程的请求。
为了充分利用多核特性,我们可以设置与机器CPU核数相等的worker进程个数,并使用cpu绑定选项,将进程绑定在特定的核上,以避免因进程切换带来的缓存失效。
Nginx实现高性能的关键因素包括其事件驱动模型、多进程机制、内存池以及模块化设计等。
其基于异步及非阻塞的事件驱动模型,能够应对高并发请求。多进程机制则通过独立的进程确保服务的稳定性和降低风险。而内存池的设计则有效避免了内存碎片和减少了CPU资源的消耗。高度模块化的设计使得Nginx的扩展更加方便。