Nginx的介绍以及配置模块的介绍

Nginx服务基础

在各种网站服务器软件中,除了Appche HTTP Server 外,还有一款轻量级的HTTP服务器软件----Nginx,由俄罗斯的lgor Sysoev 开发,其稳定,高效的特性逐渐被越来越多的用户认可,本章将讲解nginx服务的基本构建,访问控制方式,虚拟主机的搭建,还有应用广泛的LNMP 架构服务器的部署方式,并对 PHP_FPM模块如何支持PHP语言进行讨论。
Nginx 专为性能优化而开发,其最知名的优点是它的稳定性和低系统资源消耗以及对HTTP并发连接的高处理能力(单台物理服务器可支持30 000~ 50 000 个并发请求)。正因为如此企业纷纷选择 Nginx来提供Web服务

1.编译安装Nginx 1.15安装及运行控制
######试验环境:CentOS 7.6 Nginx 1.15 关闭防火墙,核心防护###

1.1软件支持
Nginx的配置及运行需要pcre,zlib 等软件包的支持,因此应预先安装这些软件的开发包(devel),以便提供相应的库和头文件,确保Nginx的安装顺利完成

[root@localhost ~]# yum -y install pcre-devel zlib-devel
注释:pcre-devel、zlib-devel这俩个包分别是让nginx支持正则表达式和支持压缩功能

1.2 创建运行用户,组
Nginx服务程序默认以nobody身份运行,建议为其创建专门的用户账户,以便更准确的控制其访问权限,降低安全风险。例如,创建一个名为Nginx的用户,不建立宿主的文件夹,也禁止登录到Shell环境。

[root@localhost ~]# useradd -M -s /sbin/nologin  nginx

注释:-M是不创建宿主目录;-s指定shell环境

##1.3編安装Nginx##

配置Nginx的编译选项时,将安装目录设为/usr/local/nginx, 运行用户和组均设为nginx;后用http stub status module模快以支持状恣統i汁,便于査看服努器的達接信息.

具体选项根据实际需要来定,配置前可参考"./configure --help"给出的说明。

上侍nginx-1.15.9.tar.gz至/opt目彖

[root@localhost ~]# cd /opt
在解压之前也是需要把安装底层的语言环境
[root@localhost opt]#yum -y install
gcc
gcc-c++
make
pcre-devel \ // 让nginx支持正则表达式
expat-devel \ //让nginx支持多种的语言
perl // 是指程序运行的解释器,能够解析各种语言

[root@localhost opt]# tar xzvf nginx-1.15.9.tar.gz //然后切到解压之后的扩展目录

[root@localhost nginx-1.15.9]# ./configure \ ###配置

–prefix=/usr/local/nginx \ ###配置安装的路径为/usr/local/nginx

–user=nginx \ ###用户是nginx

–group=nginx \ ###组为nginx

–with-http_ stub status_ module ####with开头的是模块后面是模块名称作用是一个监视模块,可以查看目前的连接数等一些信息

[root@localhost nginx-1.15.9]# make && make install

##l路径优化##

カ了使Nginx服努器的返行更加方便,可以カ主程序nginx創建縫接文件,以便管理昃

直接执行"nginx"命令就可以调用Nginx的主程序

[root@localhost nginx-1.15.9]# In -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

[root@localhost nginx-1.15.9]# Is -l /usr/local/sbin/nginx

Irwxrwxrwx 1 root root 27 2F 28 05:17 /usr/local/sbin/nginx -> /usr/local/nginx/sbin/nginx

  1. Nginx 的运行控制

##2.1检查配置文件##

与Apache的主程序httpd类似,Nginx 的主程序也提供了“-t" 迭項用来対配置文件迸行检查,以便找出不当或错误的配置。配置文件nginx.conf默认位于安装目录下的conf/子目录中。若要检查位于其他位置的配置文件,可使用"-C"选项来指定路径。

[root@localhost nginx- 1.15.9]# nginx -t

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

##2.2启动,停止Nginx###

直接运行Nginx即可启动Nginx服务器,这种方式將使用默人的配置文件,若要改用其他配置文件,需添加"-C配置文件路径”选项来指定路径。需要注意的是,若服务器中已装有httpd等其他Web服努軟件,应采取措施(修改端口.停用或卸戟)避免冲突。

[root@localhost nginx- 1.15.9]# nginx

[root@localhost nginx- 1.15.9]# netstat -anpt I grep nginx

tcp     0       0.0.0.0:80        0.0.0.0:*        LISTEN      11191/nginx: master

通过檢査Nginx程序的監听状恋,或者在渕覧器中訪向此Web服努(默认頁面將星示"Welcom to nginx!" ) , DJCLöf-iA Nginx B5SSiERiEi.

[root@localhost nginx-1.15.9]# yum -y install lynx

[root@localhost nginx-1.15.9]# lynx 127.0.0.1

                        Welcome to nginx!

Welcome to nginx!

主程序Nginx支持标准的进程信号,通过kill或killall命令发送HUP信号表示重载配置,QUIT信号表示退出进程,KILL 信号表示杀死进程。例如,若使用killall 命令,重载配置、停止服务的操作分别如下所示(通过"-s"选项指定信号种类)
[root@localhost ~]# yum -y install psmisc ###最小安装没有killall命令需要安装
[root@localhost ~]# killall -s HUP nginx
[root@localhost ~]# killall -S QUIT nginx

###选项-S HUP等同于-1重新加载###选项-S QUIT等同于-3停止服务

当Nginx进程运行时,PID号默认存放在logs/目录下的nginx.pid 文件中,因此若改用kill命令,也可以根据nginx.pid文件中的PID号来进行控制。

##2.3添加Nginx系统服务##

为了使Nginx服务的启动、停止、重载等操作更加方便,可以编写基于CentOS 7.6的Nginx服务控制文件使用systemctl工具来进行管理,CentOS7.6系统的管理习惯

[root@localhost ~]# vim /lib/systemd/system/nginx.service

###要刷配置参数##

[Unit]    单元信息
Description=nginx    描述             
After=network.target      网络服务模式           //描述服务类别
[Service]
Type=forking    forking服务类型,一般start开启这个服务,后天会有一个守护进行去支撑他,让他持续在线工作                        //后台运行形式
PIDFile=/usr/local/nginx/logs/nginx.pid              // PID文件位置
ExecStart=/usr/local/nginx/sbin/nginx                 // 启动服务
ExecReload=/usr/bin/kill -s HUP $MAINPID       //  重新加载
ExecStop=/usr/bin/kill -s QUIT $MAINPID          //停止
PrivateTmp=true     //开启缓存                                       
[Install]
WantedBy=multi-user.target    多用户登录模式       

[root@localhost ~]# chmod 754 /lib/systemd/system/nginx.service

[root@localhost ~]# systemctl enable nginx.service

Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.

#2.4检查通过systemctl命令能否正常启动、停止、重启、重载Nginx服务##[root@localhost ~]# netstat -anutp lgrep nginx

[root@localhost ~]# systemctl start nginx

[root@localhost ~]# netstat -anutp lgrep nginx

tcp 000.0.0.0:80 0.0.0.0:* LISTEN 11410/nginx: master

由各种配置语句组成,不使用特定的界定标记。全局配置部分包括Nginx服务的运行用户、工作进程数、错误日志、PID 存放位置等基本设置

3、配置文件Nginx.conf

在Nginx服务器的主配置文件/usr/local/nginx/conf/nginx.conf中,包括全局配置、I/0事件配置和HTTP配置这三大块内容,配置语句的格式为“关键字值;” (末尾以分号表示结束),以"#"开始的部分表示注释。

##3.1全局配置##

由各种配置语句组成,不使用特定的界定标记。全局配置部分包括Nginx服务的运行用户、工作进程数、错误日志、PID存放位置等基本设置

[root@localhost ~]# vi /usr/local/nginx/conf/nginx.conf

#user nobody;

worker_ _processes 1;

##运行用户##工作进程数

#error. log logs/error.log;

#error_ log logs/error.log notice;#error_ log logs/error.log info;#pidlogs/nginx.pid;

####错误日志文件的位置

####PID文件的位置

上述配置中,worker _processes表示工作进程的数量。若服务器有多块CPU或者使用多核处理器,可以参考CPU核心总数来指定工作进程数,如设为8;如果网站访问量需求并不大,- -般设为1就够用了。其他三项配置均已有注释,表示采用默认设置,例如,Nginx的运行用户实际是编译时指定的nginx,若编译时未指定则默认为nobody



##3.2 I/O时间配置##

使用"events { }” 界定标记,用来指定Nginx进程的I/O响应模型、每个进程的连接数等设置。对于2.6及以上版本的内核,建议使用epoll模型以提高性能;每个进程的连接数应根据实际需要来定,- -般在10 000以下(默认为1024)

events {

use epoll;

worker_ connections 4096;

若工作进程数为8,每个进程处理4 096个连接,则允许Nginx正常提供服务的连接数

已超过3万个(4 096x8=32 768),当然具体还要看服务器硬件、网络带宽等物理条件的性能表现。




##3.3 HTTPëï##

使用"http {}"界定标记,包括访问日志、HTTP端口、网页目录、默认字符集、连接保持,以及后面要讲到的虚拟Web主机、PHP解析等一 系列设置,其中大部分配置语句都包含在子界定标记"server {}"内

#user nobody;

worker_ processes 1;

#error log logs/error.log;

#error log logs/error.log notice;#error log logs/error.log info;

#pid

logs/nginx.pid;

events f

use epoll;

worker_ connections 4096;



http {

includemime.types;

default_ type application/octet-stream;

log_ format main '$remote_ addr - $remote_ user [$time local] "$request" ' ###●去掉前面注释

'$status $body_ bytes_ sent " $http_ referer"'

###●去掉前面注释

"$http_ user_ agent" "$http. _x_ forwarded. for";

###●去掉前面注释

access log logs/access.log main; .

###●访问日志位置,去掉前面注释

sendfileon;#tcp_ nopush on;

###支持文件发送(下载)

#keepalive_ timeout 0;keepalive_ timeout 65;

###链接保持时间

#gzip on;



server {

###WEB服务的监听配置

listen80;

###WEB服务的监听端口

server_ name www.51xit.top;

###●网站名称(FQDN)

charset koi8-r;

###●网页的默认字符集

#access_ log logs/host.access.log main;

location/ {

root htm|;

index index.html index.htm;

###根目录配置

###网站根目录的位置###默认首页(索引页)

error_ page 404

/404.html;

# redirect server error pages to the static page /50x.html

#

error_ page 500 502 503 504 /50x.html;

###内部错误反馈页面

location = /50x.htmI{

###错误页面配置

root html;

}



# proxy the PHP scripts to Apache listening on 127.0.0.1:80#

#location ~ .php$ f

#proxy_ pass http://127.0.0.1;

#]

# pass the PHP scripts to FastCGl server listening on 127.0.0.1:9000#

#location ~ l.php$ f

#

root

html;

#

fastcgi pass127.0.0.1:9000;

#

fastcgi_ index index.php;

#

fastcgi_ param SCRIPT FILENAME /scripts$fastcgi script name;#

includefastcgi_ params;

#]

# deny access to .htaccess files, if Apache's document root# concurs with nginx's one

#

#location ~ /.ht (

#deny all; 

#]




# another virtual host using mix of lP-, name-, and port-based configuration#

#server (

#listen

8000;

#

listen

somename:8080;

#

server name somename alias another.alias;

#

location / (

#

roothtml;

#

index index.html index.htm;

#]

#]



# HTTPS server

#

#server {

# listen443 ssl;

#server_ name localhost;

ssl certificatecert.pem;# ssl _certificate_ key cert.key;

# ssl session cache shared:SSL:1m;# ssl _session timeout 5m;

# ssI ciphers HIGH:!aNULL:!MD5;# ssl _prefer_ server_ ciphers on;

# location / {

#

root - html;

#

index index.html index.htm;#}

#}

上述配置中,listen语句允许同时限定IP地址,采用"IP地址:端口”形式; root语句用

来设置特定访问位置("location /"表示根目录)的网页文档路径,默认为Nginx安装目录”下的htmI/子目录,根据需要可改为/var/www/html等其他路径。




3、彷向状恣統汁

Nginx 内置了 HTTР STUB_ STATUS 状态统计模块,用来反馈当前的Web访问情况,配置编译参数时可添加–with-http_ stub status_ module来启用此模块支持,可以使用命令/usr/local/nginx/sbin/nginx -V îB3ÁJ Nginx ÆEâ HTTP_ STUB_ STATUS tt.

要使用Nginx的状恣統汁功能,除了后用内建模快以外,胚需要修改nginx.conf配置文件,指定访问位置并添加stub_ status配置代码。

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

###省略####在localtion /这个大模块下面location /status模块location/ (

root html;

index index.html index.htm;

location /status [stub_ status on;access_ log off;

####省略####

[root@localhost nginx]# nginx -t

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

[root@localhost nginx]# systemctl restart nginx

[root@localhost nginx]# lynx 127.0.0.1/status

Active connections: 1

###活动连接数

server accepts handled requests ### Bžk96EÊfÊ

111

###上个数字从左到右依次表示:已处理的连接数、成功的TCP握手次数、已处理的请求数

Reading: 0 Writing: 1 Waiting: 0

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值