0
点赞
收藏
分享

微信扫一扫

初识Nginx服务

天际孤狼 2022-01-11 阅读 43

文章目录

Nginx服务

Nginx是一款高性能,轻量级Web服务软件,其优点稳定性高,系统资源消耗低,对HTTP并发连接的处理能力高(单台物理服务器可支持30000~50000个并发请求)

Nginx相对于Apache的优点:

轻量级,同样是Web服务,比Apache 占用更少的内存及资源﹔

高并发,Nginx处理请求是异步非塞的,而Apache 则是阻塞型的,在高并发下Nginx能保持低资源低消耗高性能;

高度模块化的设计
编写模块相对简单;社区活跃,各种高性能模块出品迅速。

Apache相对于Nginx的优点:
rewrite,比Nginx的rewrite强大;模块超多,基本想到的都可以找到;少bug,Nginx的bug相对较多;超稳定

存在就是理由,一般来说,需要性能的web服务,用Nginx。如果不需要性能只求稳定,那就Apache。Nginx处理动态请求是弱项,一般动态请求要Apache去做,Nginx只适处理静态网页或反向代理。


编译安装Nginx服务

1.关闭防火墙,将Nginx软甲包 传到/opt 目录下,安装依赖包

在这里插入图片描述

在这里插入图片描述

2.编译安装

 make && make install 

3.将Nginx加入 /usr/local/sbin 目录中

在这里插入图片描述

4.启动服务

在这里插入图片描述

检查,启动,重启,停止,nginx服务

nginx -t ##启动
nginx    ##停止

cat /usr/local/nginx/logs/nginx.pid   ##查看nginx的PID号

kill -3 <PID号>

kill -s OUIT <PID号>

killall -3 nginx

killall -s QUIT nginx

#重载
kill -s HUP <PID号>

#日志分隔,重新打开日志文件
kill -USR1 <PID号>

#平滑升级
kill -USR2 <PID号>

#查看版本号
nginx -v

在这里插入图片描述


管理nginx服务

[root@zzz opt]# cd nginx-1.12.2/
[root@zzz nginx-1.12.2]# cd objs/
[root@zzz objs]# cd /etc/init.d/
[root@zzz init.d]# vim nginx

在这里插入图片描述

#!/bin/bash
#chkconfig: 35 99 21
#desc: this is used for control nginx service
COM="/usr/local/nginx/sbin/nginx"
PID="/usr/local/nginx/logs/nginx.pid"

case $1 in
start)
  $COM
  ;;

stop)
  kill -s QUIT `cat $PID`
  ;;

restart)
  $0 stop
  $0 start
  ;;

reload)
  kill -s HUP `cat $PID`
  ;;

status)
tmp=`ps -ef | grep nginx | egrep -cv "grep|$$"`
  ps -ef | grep nginx | egrep -v "grep|$$"
  if [ "$tmp" -le 1 ];then
    echo "Nginx 服务未启动"
  else
    echo "Nginx 服务已启动"
  fi
  ;;
*)
  echo "Usage: $0 {start|stop|restart|status|reload}"
  exit 1
esac
exit 0

给予权限,加入系统服务中

[root@zzz init.d]# chmod +x nginx
[root@zzz init.d]# chkconfig --add nginx 
[root@zzz init.d]# service nginx status

在这里插入图片描述

第二种方法,加入system文件

在这里插入图片描述

在这里插入图片描述

[Unit]		服务的说明
Description=nginx  描述服务
After=network.target  依赖,当依赖的服务启动之后再启动白定义的服务

[Service] 服务运行参数的设置

Type=forking  是后台运行的形式,使用此启动类型应同时指定PIDFile=,以便				systemd能够跟踪服务的主进程。


PIDFile=/usr/local/nginx/logs/nginx.pid

ExecStart=/usr/local/nginx/sbin/nginx  为服务的具体运行命令

ExecReload=/bin/kil1 -s HUP $MAINPID  重启命令
ExecStop=/bin/kill -s QUIT $MAINPID  停止命令
PrivateTmp=true   服务分配的独立临时空间
[Install]
WantedBy=multi-user.target  服务安装的相关设置,可设置为多用户

认识Nginx 配置文件

Nginx配置文件所在位置

在这里插入图片描述

查看有效行

在这里插入图片描述

1、全局块 :配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。

2、events块: 配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。

3、http块: 可以嵌套多个server,配置代理,级存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。

4、server块: 配置虚拟主机的相关参数,一个http中可以有多个server。

5、location块: 配置请求的路由,以及各种页面的处理情况。

在这里插入图片描述

如提高每个进程的连接数还需执行"ulimit -n 65535"命令临时修改本地每个进程可以同时打开的最大文件数。 根据cpu性能设置的

在Linux平台上,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。

可使用ulimit -a命令查看系统允许当前用户进程打开的文件数限制。

epoll是Linux内核为处理大批句柄而作改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著的减少程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。

在这里插入图片描述

在这里插入图片描述

日志格式设定:

$ remote_addr与$http_ x _ forwarded_for用以记录客户端的ip地址址;

$remote_user:用来记录客户端用户名称;

$time_local:用来记录访问时间与时区;

$request:用来记录请求的url与http协议

$status:用来记录请求状态;成功是200

$body bytes_sent :记录发送给客户端文件主体内容大小;

$http_referer:用来记录从哪个页面链接访问过来的;

$ http user agent:记录客户浏览器的相关信息;
通常web服务器放在反向代理的后面,这样就不能获取到客户的IP地址了,通过$remote_ add拿到的IP地址是反向代理服务器的iP地址。反向代理服务器在转发请求的http头信息中,可以增加x_forwarded for信息,用以记录原有客户端的IP地址和原来客户端的请求的服务器地址。

location常见配置指令,root、 alias.,proxy_pass

root(根路径配置): root /var/ www / html
请求www . kgc.com/test/1.html,会返回文件/var/www /html/test/1.html

alias(别名配置): alias /var/ www / html
请求www . kgc.com/test/1.html,会返回文件/var/www / html/ 1.html

proxy_pass (反向代理配置)


访问状态统计配置

在这里插入图片描述

在这里插入图片描述

重启服务之后。我们再浏览器验证

在这里插入图片描述

字段代表的意思

Active connections :表示当前的活动连接数:
server accepts handled requests :表示已经处理的连接信息,三个数字依次表示已处理的连接数、成功的TCP握手次数、已处理的请求数。

在这里插入图片描述


基于授权的访问控制

1.生成用户密码认证文件

在这里插入图片描述

2.修改主配置文件相对应目录,添加认证配置项目

在这里插入图片描述

3.重启服务

在这里插入图片描述

4.打开网页验证

在这里插入图片描述

在这里插入图片描述


基于客户端的访问控制

访问控制规则如下:
deny IP/IP段:拒绝某个IP或IP段的客户端访问。

allow IP/IP段:允许某个IP或IP段的客户端访问。

规则从上往下执行,如匹配则停止,不再往下匹配。

实例:只允 主机位为 103 访问,其余全部拒绝

1.修改配置文件

[root@zzz system]#  vim /etc/nginx.conf

在这里插入图片描述

2.开启浏览器验证

切换到 102的主机上去访问(nginx服务在102的机子上)这个配置一设 本机也就没有访问权限了

在这里插入图片描述

切换到103的机子上去访问

在这里插入图片描述



基于域名的 Nginx虚拟主机

在客户机上设置

在这里插入图片描述

在这里插入图片描述

切换到服务器

在这里插入图片描述

编辑配置文件

vim /etc/nginx.conf

在这里插入图片描述

在这里插入图片描述

重启服务

[root@zzz conf]# systemctl restart nginx.service 

开网页验证

在这里插入图片描述

举报

相关推荐

0 条评论