在Nginx服务器的主配置文件/usr/local/nginx/conf/nginx.conf 中,包括全局配置、I/O事件配置 和HTTP配置这三大块内容,配置语句的格式为“关键字 值:”(末尾以分号表示结束),以“#” 开始的部分表示注释。
全局配置部分由各种配置语句组成,不使用特定的界定标记.它包括Nginx服务的运行用户.工 作进程数、错误日志,PD存放位置等基本设置。
[root@llcgc ~]# cat /usr/local/nginx/conf/nginx.conf
上述配置中,worker_processes表示工作进程的数量,若服务器有多块CPU或者使用多核处理器, 可以参考CPU核心总数来指定工作进程数,如设为8:如果网站访问量需求并不大,一般设为1就 够用了,一般情况下,若主配置文件中没有设置或已有注释的配置项,表示自行使用默认设置,因 此上述配置文中的其他三项配置均已有注释,自动采用Nginx服务自己默认的设置,例如.Nginx的 运行用户在编译时指定为nginx,若编译时未指定则默认为nobody。
使用events{}"界定标记用来指定Nginx进程的I/O响应模型、每个进程的连接数等设置. 对于2.6及以上版本的内核,建议使用epoll模型以提高性能;每个进程的连接数应根据实际需要来 定,一般在10000以下(默认为1024)。
若工作进程数为8,每个进程处理4096个连接,则允许Nginx正常提供服务的连接数已超过3 万个(4096×8=32768),当然具体还要看服务器硬件、网络带宽等物理条件的性能表现。
使用“htp{}”界定标记用于设定HTTP服务器,包括访问日志、HTTP端口、网页目录、默认 字符集、连接保持,以及后面要讲到的虚拟Web主机、PP解析等网站全局设置,其中大部分配置 语句都包含在子界定标记‘server{}”内。‘server{}”代表一个具体的网站设置。
上述配置中,listen 语句限定端口的同时允许限定P地址,采用“P地址:端口”形式;root 语句 用来设置特定访问位置(如“location/”表示根目录)的网页文档路径,默认为Nginx安装目录下 的html/子目录,根据需要可改为/var/www/html等其他路径,但更改后需保证nginx用户对其具有 读取权限。
1.Nginx的访问状态统计
Nginx 内置了HTTP_STUB_STATUS状态统计模块,用来反馈当前的Web 访问情况,配置编译参 数时可添加--with-http_stub_status_module来启用此模块.要使用Nginx的状态统计功能,除了启用 内建模块以外,还需要修改nginx.conf 配置文件,指定访问位置并打开 stub_status 配置。
[root@llcgc ~]# vim /usr/local/nginx/conf/nginx.conf
[root@llcgc ~]# systemctl restart nginx
新的配置生效以后,在浏览器中访问Nginx服务器的/status网站位置,如192.168.55.110/status可以看到当前的状态统计信息,如下图所示
其中,“Active connections”表示当前的活动连接数(2):而“server accepts handled requests”表示已经处理的连接信息,三个数字依次表示已处理的连接数(4)、成功的TCP 握手次数(4)、已处理的请求数(13)。
基于域名的虚拟Web主机通过域名区分不同的Web站点.使用Nginx搭建虚拟主机服务器时. 每个虚拟Web站点拥有独立的‘server{}”配置段,各自监听的P地址、端口号可以单独指定,当 然网站名称也是不同的,例如,若要在一台Linux服务器上部署两个站点www.bdqn.com和 www.accp.com,可以参考以下过程。
(1)配置DNS服务,使两个域名解析为同一IP地址(过程略).
(2)准备网站目录及测试文件,为两个虚拟Web主机分别建立根目录,并准备测试首页.以方 便在测试时区分。
(3)调整nginx.conf 配置文件。配置两个‘server{}”区域,分别对应两个Web站点,指定各 自的网站名称、监听地址、网站根目录、访问日志等信息,然后重载配置。
[root@llcgc ~]# vim /usr/local/nginx/conf/nginx.conf
[root@llcgc ~]# systemctl restart nginx
(4)访问虚拟Web主机.找一台与Web主机同网段的客户机(系统为Windows 10)测试Web 站点是否配置成功.在客户机的浏览器中分别访问两个站点:www.bdqn.com和www.accp.com. 若能看到各自的测试首页内容,就表示虚拟Web主机配置成功。