1、为何要用nginx?它和tomcat的区别又是什么?javascript
1. 从应用方面
tomcat通常是作动态解析才会用获得,支持jsp的解析,须要配置JDK支持;nginx,则通常是作静态,自己不具有动态解析功能,须要配置其余插件或经过其余软件协同才具有动态功能,好比php,tomcat,或者proxypass到win2008的iis服务器作ASP的动态连接等,但nginx在静态上的功能很是强大,
也可作访问控制,并且能够作成各类协议负载服务器,包括流媒体的也能够作,具体能够去官方网站阅读文档;
2. 在性能方面
若是再不作系统调优的状况下,tomcat通常支持并发并不高100个差很少了;而nginx在静态方面支持并发轻松达几万。
简单的总结一下,就是二者应用领域不同,tomcat是作java等语言的动态解析,而nginx则是一款功能强大的负载软件,配合各类插件能够实现各类功能。php
2、Nginx工做原理css
Nginx是一款开源代码的高性能HTTP服务器和反向代理服务器,同时支持IMAP/POP3/SMTP代理服务。Nginx由内核和模块组成,完成工做是经过查找配置文件将客户端请求映射到一个location block(location是用于URL匹配的命令),location配置的命令会启动不一样模块完成工做。html
Nginx模块分为核心模块,基础模块和第三方模块。前端
核心模块:HTTP模块、EVENT模块(事件)、MAIL模块。java
基础模块:HTTP Access模块、HTTP FastCGI模块、HTTP Proxy模块、HTTP Rewrite模块。node
第三方模块:HTTP Upstream Request Hash模块、Notice模块、HTTP Access Key模块。nginx
3、CentOS7下安装nginxc++
启动
启动代码格式:nginx安装目录地址 -c nginx配置文件地址
例如:
[root@libingbin sbin]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.confweb
启动操做
/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
4、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 -->