一、为什么要用nginx?它和tomcat的区别又是什么?
1. 从应用方面
tomcat一般是做动态解析才会用得到,支持jsp的解析,需要配置JDK支持;nginx,则一般是做静态,本身不具备动态解析功能,需要配置其他插件或通过其他软件协同才具备动态功能,比如php,tomcat,或者proxypass到win2008的iis服务器做ASP的动态链接等,但nginx在静态上的功能非常强大,
也可做访问控制,而且可以做成各种协议负载服务器,包括流媒体的也可以做,具体可以去官方网站阅读文档;
2. 在性能方面
如果再不做系统调优的情况下,tomcat一般支持并发并不高100个差不多了;而nginx在静态方面支持并发轻松达几万。
简单的总结一下,就是两者应用领域不一样,tomcat是做java等语言的动态解析,而nginx则是一款功能强大的负载软件,配合各种插件可以实现各种功能。
二、Nginx工作原理
Nginx是一款开源代码的高性能HTTP服务器和反向代理服务器,同时支持IMAP/POP3/SMTP代理服务。Nginx由内核和模块组成,完成工作是通过查找配置文件将客户端请求映射到一个location block(location是用于URL匹配的命令),location配置的命令会启动不同模块完成工作。
Nginx模块分为核心模块,基础模块和第三方模块。
核心模块:HTTP模块、EVENT模块(事件)、MAIL模块。
基础模块:HTTP Access模块、HTTP FastCGI模块、HTTP Proxy模块、HTTP Rewrite模块。
第三方模块:HTTP Upstream Request Hash模块、Notice模块、HTTP Access Key模块。
三、CentOS7下安装nginx
启动
启动代码格式:nginx安装目录地址 -c nginx配置文件地址
例如:
[root@libingbin sbin]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
启动操作
/usr/nginx/sbin/nginx (/usr/nginx/sbin/nginx -t 查看配置信息是否正确)
停止操作
停止操作是通过向nginx进程发送信号(信号是Linux所使用的进程间通信的最古老的方式。它是在软件层次上对中断机制的一种模拟,是一种异步通信的方式 。一个完整的信号周期包括三个部分,信号的产生,信号在进程中的注册,信号在进程中的注销,执行信号处理函数。)来进行的。
步骤1:
查询nginx主进程号
ps -ef | grep nginx
在进程列表里 面找master进程,它的编号就是主进程号了。
步骤2:发送信号
从容停止Nginx:
kill -QUIT 主进程号
快速停止Nginx:
kill -TERM 主进程号
强制停止Nginx(pkill作用:通过程序的名字,直接杀死所有进程;kill作用:根据进程号杀死进程;killall作用:通过程序的名字,直接杀死所有进程;xkill作用:杀死桌面图形界面的程序):
pkill -9 nginx
另外,若在nginx.conf配置了pid文件存放路径则该文件存放的就是Nginx主进程号,如果没指定则放在nginx的logs目录下。有了pid文 件,我们就不用先查询Nginx的主进程号,而直接向Nginx发送信号了,命令如下:
kill -信号类型 '/usr/nginx/logs/nginx.pid'
平滑重启
如果更改了配置就要重启Nginx,要先关闭Nginx再打开?不是的,可以向Nginx 发送信号,平滑重启。
平滑重启命令:
kill -HUP 住进称号或进程号文件路径
或者使用
/usr/nginx/sbin/nginx -s reload
注意,修改了配置文件后最好先检查一下修改过的配置文件是否正 确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:
nginx -t -c /usr/nginx/conf/nginx.conf
或者
/usr/nginx/sbin/nginx -t
四、Nginx配置文件
配置文件主要由四部分组成:main(全区设置),server(主机配置),upstream(负载均衡服务器设置),和location(URL匹配特定位置设置)。
1)全局变量
2)事件配置
3)http参数
4)虚拟主机基本设置
5)Nignx状态监控
6)反向代理
7)负载均衡
8)URL重写
9)IP限制
10)Nginx相关命令
<!-- Start -->
获知及时信息,请关注我的个人微信订阅号:0与1的那点事
<!-- End -->