0


Nginx源码编译安装

Nginx

Nginx

在这里插入图片描述

Nginx的特点

最核心的区别在于Nginx 采用异步非阻塞机制 ,多个连接可以对应一个进程;Apache 采用的是同步阻塞+多进程/线程模型,一个连接对应一个进程

  • Nginx 抗并发能力更高
  • Nginx 更轻量,内存、CPU资源消耗更少
  • Nginx 配置简洁,使用场景多,稳定性高

Nginx的使用场景

  1. 用作Web网站服务,处理http静态页面请求
  2. 用作虚拟主机,实现一个服务器用于做多个网站站点
  3. 用作反向代理、负载均衡,可以作为网关代理服务器接收客户端的请求转发给后端节点服务器集群
  4. 用作web缓存服务器

Nginx 有哪些进程

  • master进程:管理worker进程,加载配置文件
  • worker进程:处理请求连接

root 和 alias 指定路径的区别

root(根目录)

处理方式: root路径+location路径

例:

#nginx.conf 配置示例
location /abc {
    root /var/www;}

url访问:
http://<IP>/abc/kfc/test.html

test.html文件存放在
/var/www/abc/kfc/test.html

http://IP地址/abc/kfc/test.html ------>> /var/www/abc/kfc/test.html

alias(别名目录、虚拟目录)

alias路径替换location路径

例:

#nginx.conf 配置示例
location /abc {alias /var/www;}

url访问:
http://<IP>/abc/kfc/test.html

test.html文件存放在
/var/www/kfc/test.html

http://IP地址/abc/kfc/test.html ------>> /var/www/kfc/test.html

使用源码编译安装Nginx

准备工作

  • 关闭安全防护系统
systemctl disable firewalld.service --now

setenforce 0SELINUX=enforcing        -->SELINUX=0

在这里插入图片描述
在这里插入图片描述

  • 下载源码安装包,并上传至/opt目录下 Nginx官网 Nginx下载页面在这里插入图片描述在这里插入图片描述

当前我选择 Nginx1.25.5,以便等会进行平滑升级到最新版本 Nginx1.26.0

使用XFTP进行文件传输——上传到/opt目录下

在这里插入图片描述

  • 解压文件到当前目录
cd /opt

tar xf nginx-1.25.5.tar.gz

ll

在这里插入图片描述

  • 创建运行用户、组
useradd-M-s /sbin/nologin nginx

id nginx

在这里插入图片描述

安装依赖包

yum -yinstall pcre-devel zlib-devel openssl-devel gcc gcc-c++ make

在这里插入图片描述

编译安装Nginx

cd /opt/nginx-1.25.5/

./configure \--prefix=/usr/local/nginx \#指定nginx的安装路径--user=nginx \#指定用户名--group=nginx \#指定组名
--with-http_stub_status_module                        #启用 http_stub_status_module 模块以支持状态统计make&&makeinstallln-s /usr/local/nginx/sbin/nginx /usr/local/sbin/        #让系统识别nginx的操作命令

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

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

  • 检查nginx服务配置
nginx -t#检查配置文件是否配置正确

在这里插入图片描述

  • 启动nginx服务
/usr/local/nginx/sbin/nginx    

netstat-lntp|grep80

在这里插入图片描述

  • 查看PID进程号
cat /usr/local/nginx/logs/nginx.pid

##只有在运行时才能查看PID号

在这里插入图片描述

  • 停止nginx服务
kill-3<PID号>kill-s QUIT <PID号>killall-3 nginx
killall-s QUIT nginx

在这里插入图片描述

  • 重启nginx服务
kill-1<PID号>kill-s HUP <PID号>killall-1 nginx
killall-s HUP nginx

配置 Nginx 系统服务

方法一:
vim /etc/init.d/nginx
    #!/bin/bash#chkconfig: - 99 20#description:Nginx Service Control ScriptCOM="/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}"exit1esacexit0chmod +x /etc/init.d/nginx            #添加执行权限chkconfig--add nginx                            #添加为系统服务

systemctl start nginx

netstat-lntp|grep80

在这里插入图片描述

在这里插入图片描述

方法二:
vim /lib/systemd/system/nginx.service
    [Unit]Description=nginx
    After=network.target
    [Service]Type=forking
    PIDFile=/usr/local/nginx/logs/nginx.pid
    ExecStart=/usr/local/nginx/sbin/nginx
    ExecReload=/bin/kill -s HUP $MAINPIDExecStop=/bin/kill -s QUIT $MAINPIDPrivateTmp=true
    [Install]WantedBy=multi-user.target

chmod754 /lib/systemd/system/nginx.service

systemctl start nginx.service
systemctl enable nginx.service

说明

[Unit]:服务的说明
Description:描述服务
After:依赖,当依赖的服务启动之后再启动自定义的服务

[Service]服务运行参数的设置
Type=forking是后台运行的形式,使用此启动类型应同时指定PIDFile=,以便systemd能够跟踪服务的主进程。
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:启动、重启、停止命令全部要求使用绝对路径

[Install]服务安装的相关设置,可设置为多用户

在这里插入图片描述

在这里插入图片描述

访问Nginx页面

浏览器访问:

http://<本机IP>:80
在这里插入图片描述

平滑升级Nginx

准备工作

  • 查看当前安装Nginx的版本及已模块
nginx -v#查看当前安装的Nginx版本

nginx -V#查看当前安装的Nginx已安装的模块

在这里插入图片描述

  • 下载新版本源码安装包,并上传至/opt目录下在这里插入图片描述
  • 解压文件到当前目录cd /opttar xf nginx-1.26.0.tar.gzll在这里插入图片描述

编译安装新版本Nginx

cd /opt/nginx-1.26.0/

./configure \--prefix=/usr/local/nginx \--user=nginx \--group=nginx \
--with-http_stub_status_module
--with-http_ssl_module

makemv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old        #备份老版本Nginxcp objs/nginx /usr/local/nginx/sbin/nginx    #将新版本的Nginx移动到安装目录make upgrade

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

验证

  • 查看Nginx是否正常启动
netstat-lntp|grep80

在这里插入图片描述

  • 检查当前Nginx的版本
nginx -v

在这里插入图片描述

标签: nginx 运维 linux

本文转载自: https://blog.csdn.net/JIUYINGQAQ/article/details/139299458
版权归原作者 姐姐,我还可以 所有, 如有侵权,请联系我们删除。

“Nginx源码编译安装”的评论:

还没有评论