【Linux】Nginx编译安装及系统服务添加

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

Nginx

  • 一、关于 Nginx
      • Nginx和Apache的差异
        • Apache的优势
        • Nginx的优势
  • 二. 编译安装Nginx服务
    • 1.关闭防火墙
    • 2.安装依赖包
    • 3.创建运行用户、组
    • 4.编译安装Nginx
    • 5.检查、启动、重启、停止 nginx服务
  • 三、添加 Nginx 系统服务


一、关于 Nginx

Nginx 是开源、高性能、高可靠的 Web 和反向代理服务器,而且支持热部署,几乎可以做到 7 * 24 小时不间断运行,即使运行几个月也不需要重新启动,还能在不间断服务的情况下对软件版本进行热更新
稳定性高,系统资源消耗低,对HTTP并发连接的处理能力高(单台物理服务器可支持3w~5w个并发请求

Nginx和Apache的差异

  • Nginx是一个基于事件的Web服务器,Apache是一个甚于流程的服务器
  • Nginx所有请求都由一个线程处理,Apache单个线程处理单个请求
  • Nqinx避免子进程的概念,Apache是其于子进程的
  • Ngnx在内存消耗和连接方面更好,Apache在内存消耗和连接方面一般
  • Nqinx的性能和可伸缩性不依赖于硬件,Apache依赖于CPU和内存等硬件
  • Nginx支持热部署,Apache不支持热部署
  • Nginx对于静态文件处理县有更高效率,Apache相对一般
  • Nginx在反向代理场景县有明点优势,Apache相对一般

Apache的优势

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

Nginx的优势

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

二. 编译安装Nginx服务

1.关闭防火墙

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

【Linux】Nginx编译安装及系统服务添加_第1张图片

2.安装依赖包

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

【Linux】Nginx编译安装及系统服务添加_第2张图片

3.创建运行用户、组

useradd -M -s /sbin/nologin nginx

4.编译安装Nginx

cd /opt
tar zxvf nginx-1.24.0.tar.gz -C /opt/

cd nginx-1.24.0/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
#启用 http_stub_status_module 模块以支持状态统计

make && make install

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/		#让系统识别nginx的操作命

【Linux】Nginx编译安装及系统服务添加_第3张图片
在这里插入图片描述

5.检查、启动、重启、停止 nginx服务

nginx -t								#检查配置文件是否配置正确
#启动
nginx									
#停止
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 

【Linux】Nginx编译安装及系统服务添加_第4张图片

新版本升级:
tar -zxvf nginx-1.xx.xx.tar.gz 
cd nginx-1.xx.xx
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
--with-http_ssl_module

make
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old
cp objs/nginx /usr/local/nginx/sbin/nginx
make upgrade  #要保证当前 nginx 进程是通过 /usr/local/nginx/sbin/nginx 启动的,而不是通过查找环境变量中那个 nginx 命令启动的
#或者先 killall nginx ,再/usr/local/nginx/sbin/nginx

三、添加 Nginx 系统服务

vim /etc/init.d/nginx
#!/bin/bash
#chkconfig: - 99 20
#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)
;;

*)
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

【Linux】Nginx编译安装及系统服务添加_第5张图片

【Linux】Nginx编译安装及系统服务添加_第6张图片

你可能感兴趣的:(nginx,linux,apache)