一、Nginx与apache的差异
nginx相对于apache的优点:
轻量级,同样是web服务,比apache占用内存更少及资源;高并发,ngnix处理请求是异步非塞的,而apache则是阻塞型的,在高并发下nginx能保持低资源低消耗高性能,高度模块化的设计
编写模块相对简单,社区活跃,各种高性能模块出品迅速。
apache相对于nginx的优点:
rewrite比nginx的rewrite强大,模块超多,基本想到的都可以找到,少bug,nginx的bug相对较多;超稳定
存在就算理由,一般来说,需要性能的web服务,用nginx。如果不需要性能只求稳定,那就apache,nginx处理动态请求是弱项,一般动态请求要apache去做,nginx只适合处理静态网页或反向代理。
二、编译安装Nginx服务
nginx是一款高性能、轻量级的服务软件,巨头稳定性高,系统资源消耗低,对http并发连接的处理能力高,对单台物理服务器可支持30000~50000个并发请求。(官方是这样,但是实际可能是二~三万,而apache差不多几千不到一万)
nginx官网下载下载nginx软件包
关闭防火墙
安装依赖包
解压
创建nginx用户
添加配置项
编译及安装
查看nginx文件位置
将可执行文件建立软连接放入系统目录里,方便系统识别命令,就不需要使用绝对路径执行命令
三、Nginx命令
nginx启动,停止,重启,查看状态
直接输入nginx就会启动nginx服务,停止服务可以使用nginx进程,使用kill命令即可,nginx初始是没有systemctl文件的,所以只能使用nginx本身以及kill停止进程。
查看进程可以使用netstat -lntp | grep nginx查看是否在运行。或者使用ps aux | grep nginx也可以。
master是nginx的主进程,是启动服务时读取nginx的配置文件和管理工作进程。
worker是nginx的工作进程,是负责连接客户端工作的。
有一个文件专门用来保存nginx服务的进程号
kill的几种方式:
kill -15:默认的kill杀掉进程的方式,告诉进程你自己关闭。
kill -9:强制杀掉进程
kill -3:优雅的杀死进程,提醒进程自行关闭,并记录进程的“遗言”
killall:通过进程名杀掉进程
pkill:只要进程名包含所输入参数的进程都会被杀掉
总结:
启动命令:
kill
停止命令:
kill -3 PID号
kill -s QUIT PID号
killall -3 nginx
killall -s QUIT ID号
重载命令:
kill -1 PID号
kill -s HUP PID号
killall -1 nginx
killall -s HUP PID号
nginx升级:
先将源文件移走,以防下载失败可以恢复,然后再编译安装新的安装包
这个时候使用./nginx -v就可以看到新的版本,但是这只是做了文件替换,并没有升级,接下来回到软件包目录。
在打开nginx的状态下使用make upgrade开始在线升级。
四、向系统添加nginx服务
系统本身是无法使用systemctl打开或者关闭nginx服务的,如果想使用systemctl来操作,就需要我们自己写一个脚本。
使用systemctl管理的话需要创建一个nginx服务的配置文件
vim /usr/lib/systemd/system/nginx.service
配置完就可以使用systemctl命令
使用脚本和配置文件都可以管理服务。
五、nginx配置文件
临时修改程序同时打开文件数:
ulimit -n 参数
永久设置需要去配置文件里修改
vim /etc/security/limits.conf
需重启才能生效
六、http块的配置
vim /usr/local/nginx/conf/nginx.conf
重启nginx服务,再用浏览器访问即可看见设置的内容,这个属于根目录查看
虚拟目录查看
文件位置并没有动,访问不到是因为两次所代表的根目录不一样
在/usr/local/nginx/logs/access.log文件里查看
在/usr/local/nginx/logs/error.log文件里查看
两次不同的原因:
查看模块
在配置文件里配置模块
编写shell脚本来判断监控服务器的并发量