时下在大型的网络站点上,大部分都是采用LNMP部署的结构。这里主要理清下Nginx的部署,对nginx的使用做一个小结(另外俩个小结一个是安装小结,还有一个部署小结)。
1. 首先登录服务器查看nginx是否安装(虽然很弱智,但是查看用的是何种web服务器工作还是非常有必要的)
which nginx
(告诉你该命令在哪里,如果没有安装,系统会提示你没有该命令ng nginx之类的)
2.确认nginx的默认目录(新手用Linux的时候,最苦恼的是找到对应的安装目录)
输入whereis nginx
除掉执行目录 剩下的那个就是安装目录。(一般默认执行目录都在usr/bin/nginx下,而对应的安装会在/usr/local/nginx下)
如果安装的时候还需要一些拓展库之类的,会放到lib和include目录下,例如mysql服务
3.切换进入对应的nginx目录后,可以看到如下列表(这是LNMP一键安装的默认目录,对于大部分部署而言,这种默认目录也是非常常见的)
一般常用的三个目录
conf(nginx的核心配置目录)
html(访问nginx成功或者错误文件会存放在这里)
logs(访问nginx的错误日志还有一个nginx的pid文件,nginx异常的时候,首先查看的是这个地方,检测nginx的异常非常有帮助)
4.进入nginx的核心配置模块(对于一般的开发而言,进入conf模块是最常用的功能,配置站点,特别是配置比较多的时候,需要经常出入该地方),由于我用的是一键安装LNMP,默认情况下已经给配置了N多常用的开源系统的重写配置,看上去比较杂,关于nginx的重写是一个比较复杂的问题,另外会有博客进行总结。
配置nginx最核心的文件nginx.conf(修正一些性能常用的核心文件),将其显示出来进行分析。
5.下面进行逐行解析:
定义nginx的用户和用户组。
查看用户可以用cat /etc/passwd进行查看
表示含义:www用户密码 保存在/etc/shadow,系统的用户id是1000组别gid是1000,
用户拥有的目录:/home/www(这是很多程序默认放到/home/www目录下执行的原因,在其他目录下,需要更改权限,否则直接报错无法运行,这是很多配置好了nginx无法运行的问题原因)
可以运行的命令 /bin/bash
常见的403错误 经常会因为没有目录执行权限出现该问题
6.nginx的进程数,一般建议等于CPU的核数(自动进程里一般和CPU内核是相等的,这样可以最大限度的利用CPU功效)
查看当前nginx的进程 ps -ef | grep nginx
7.错误日志(该错误日志是默认站点的错误日志,在配置里是可以进行改动的)
8.进程文件。每个请求都会交给一个进程进行处理(nginx启动的时候会启动多个进程,发送请求的时候,需要知道是哪个进程,把pid写进文件进行识别是一个比较简单的做法)
9.最大的文件打开数(服务器打开文件是有个上限的,如果不限定打开的文件,该上限会是系统的打开文件上限)
10.nginx的事件(现在服务器性能一般都比较高,会选择epoll)
#参考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; epoll模型是Linux 2.6以上版本内核中的高性能网络I/O模型,如果跑在FreeBSD上面,就用kqueue模型。
#单个进程最大连接数(最大连接数=连接数*进程数)
worker_connections 65535;
Multi_accept on
#(默认情况是关闭的,multi_accept在Nginx接到一个新连接通知后调用accept()来接受尽量多的连接,否则会需要不停的开启连接来接受同一个站点的请求,可以节省大量不同访问带来的开销 )
来源:oschina
链接:https://my.oschina.net/u/2374674/blog/551498