LNMP (Nginx网站服务)

目录

 1.1 Nginx的简介

1.2  Apache与Nginx的区别

 Nginx对比Apache的优势:

1.3  Nginx的进程 

Nginx的两个进程:

 同步,异步,阻塞,非阻塞的概念补充

阻塞与非阻塞

同步和异步

2.1 编译安装Nginx

2.1 .1 关闭防火墙,将安装nginx所需软件包传到/opt目录下

2.2 安装依赖包

2.3 创建运行用户与组

2.4 编译安装Nginx

2.5 检查、启动、重启、停止 nginx服务

2.7新版本升级:

2.7 添加 Nginx 系统服务


 1.1 Nginx的简介

Nginx 是开源、高性能、高可靠的 Web 和反向代理服务器,而且支持热部署,几乎可以做到 7 * 24 小时不间断运行,即使运行几个月也不需要重新启动,还能在不间断服务的情况下对软件版本进行热更新。

对HTTP并发连接的处理能力高,单台物理服务器可支持30000~50000个并发请求。(实际操作,很多公司为了服务器的稳定,都会设置在20000个左右

Nginx的主要使用场景: 虚拟主机,反向代理,缓存,http

Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适用于多处理器环境,因此,在一个apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。

1.2  Apache与Nginx的区别

LNMP (Nginx网站服务)_第1张图片

 Nginx对比Apache的优势:

  • 轻量级,nginx比apache 占用更少的内存及资源;
  • 静态处理,Nginx 静态处理性能比 Apache 高 ;
  • Nginx可以实现无缓存的反向代理加速,提高网站运行速度;
  • Nginx的性能和可伸缩性不依赖于硬件,Apache依赖于硬件;
  • Nginx支持热部署,启动速度迅速,可以在不间断服务的情况下,对软件版本或者配置进行升级;
  • nginx是异步进程,多个连接可以对应一个进程 ;apache是同步多进程,一个连接对应一个进程;
  • Nginx高度模块化,编写模块相对简单,且组件比Apache少
  • 高并发下nginx 能保持低资源低消耗高性能;
  • Nginx 配置简洁, Apache配置复杂

apache相对于nginx的优点 : 

  • Rewrite比nginx的rewrite强大 (rewrite的主要功能就是实现统一资源定位符URL的跳转)
  • 模块多,基本想到的都可以找到
  • 少bug, nginx的bug相对较多
  • 超稳定
  • Nginx处理动态请求是弱项,动态请求要Apache去做。

1.3  Nginx的进程 

Apache和Nginx的默认端口都是80,当你发先Nginx启动失败,导致的原因可能就是80端口被占用,而导致服务启动失败,可以修改服务的端口,从而实现两个服务的同时进行。

Nginx的两个进程:

master process:主进程(守护进程),用来管理工作进程。

worker process:工作进程,用来处理用户的请求。LNMP (Nginx网站服务)_第2张图片

 


LNMP (Nginx网站服务)_第3张图片

 


 同步,异步,阻塞,非阻塞的概念补充

阻塞与非阻塞


阻塞:阻塞调用是指调用结果返回之前,当前线程会被挂起,一直处于等待消息通知,不能够执行其他业务,函数只有在得到结果之后才会返回。


非阻塞:非阻塞和阻塞的概念相对应,指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。

同步和异步


同步:一个服务的完成需要依赖其他服务时,只有等待被依赖的服务完成后,才算完成,这是一种可靠的服务序列。要么成功都成功,失败都失败,服务的状态可以保持一致


异步:一个服务的完成需要依赖其他服务时,只通知其他依赖服务开始执行,而不需要等待被依赖的服务完成,此时该服务就算完成了。被依赖的服务是否最终完成无法确定,因此它是一个不可靠的服务序列。
 

LNMP (Nginx网站服务)_第4张图片


2.1 编译安装Nginx

2.1 .1 关闭防火墙,将安装nginx所需软件包传到/opt目录下

  1. systemctl stop firewalld

  2. systemctl disable firewalld

  3. setenforce 0

安装

  1.  

2.2 安装依赖包

#nginx的配置及运行需要pcre、zlib等软件包的支持,因此需要安装这些软件的开发包,以便提供相应的库和头文件。
yum -y install pcre-devel zlib-devel gcc gcc-c++ make

2.3 创建运行用户与组

#创建运行用户、组(Nginx 服务程序默认以 nobody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限)
useradd -M -s /sbin/nologin nginx

2.4 编译安装Nginx

  • cd /opt                                                ##切换到opt目录下进行操作
  • tar zxvf nginx-1.12.2.tar.gz -C /opt/
  • cd nginx-1.12.2/
  • ./configure \
  • --prefix=/usr/local/nginx \                    #指定nginx的安装路径
  • --user=nginx \                                #指定用户名
  • --group=nginx \                                #指定组名
  • --with-http_stub_status_module                #启用 http_stub_status_module 模块以支持状态统计操作  VTS
  • ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/        #让系统识别nginx的操作命令

2.5 检查、启动、重启、停止 nginx服务

  • nginx -t                                #检查配置文件是否配置正确
  • #启动 nginx

LNMP (Nginx网站服务)_第5张图片

  • 扩展
  •                                     
  • #停止
  • cat /usr/local/nginx/logs/nginx.pid        #先查看nginx的PID号
  • kill -3
  • kill -s QUIT
  • killall -3 nginx                                          ##等进程结束后再杀死进程
  • killall -s QUIT nginx
  • #重载
  • kill -1
  • kill -s HUP
  • killall -1 nginx
  • killall -s HUP nginx
  • #日志分割,重新打开日志文件
  • kill -USR1
  • #平滑升级
  • kill -USR2 LNMP (Nginx网站服务)_第6张图片

 

2.7新版本升级:

  • tar -zxvf nginx-1.22.0.tar.gz  1.22.0  
  • cd nginx-1.22.0
  • yum -y  install pcre-devel zlib zlib-devel openssl openssl-devel  ##装依赖包
  • ./configure \
  • --prefix=/usr/local/nginx \        
  • --user=nginx \                    
  • --group=nginx \                    
  • --with-http_stub_status_module \
  • --with-http_ssl_module
  • make   ##编译LNMP (Nginx网站服务)_第7张图片
  • mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old   备份
  • cp objs/nginx /usr/local/nginx/sbin/nginx
  • 重启服务 并且
  • nginx -V   #查看版本
  • 扩展:
  • make upgrade               ##升级的第二种方法
  • #或者先 killall nginx ,再/usr/local/nginx/sbin/nginx

2.7 添加 Nginx 系统服务

方法一: service 系统管理

  • vim /etc/init.d/nginx
  • #!/bin/bash
  • #chkconfig: 35 99 20    // 这是固定格式,2345表示运行级别,之后为开机执行顺序和关机执行顺序
  • #description:Nginx Service Control Script    //这也是必须的 
  • 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)
  • ;;
  • *)LNMP (Nginx网站服务)_第8张图片
  • echo "Usage: $0 {start|stop|restart|reload}"
  • exit 1
  • esac
  • exit 0
  • chmod +x /etc/init.d/nginx
  • chkconfig --add nginx    #添加为系统服务
  • systemctl stop nginx   
  • systemctl start nginx

 LNMP (Nginx网站服务)_第9张图片

 

service   nginx   start|stop|restart|reload
 

你可能感兴趣的:(nginx,运维,服务器)