一、编译安装前的准备
1先停止yum安装的nginx
[root@web-1 nginx]# systemctl stop nginx
2.查看端口和进程检查时都停止nginx
[root@web-1 nginx]# ps aux|grep nginx
root 1551 0.0 0.0 112824 988 pts/0 R+ 10:06 0:00 grep --color=auto nginx
[root@web-1 nginx]# netstat -anplut|grep 80
[root@web-1 nginx]#
二、在全新的服务器上进行编译安装
1.下载源码包并解压
[root@web-1 ~]# mkdir /nginx
[root@web-1 ~]# cd /nginx/
[root@web-1 nginx]# ls
[root@web-1 nginx]#curl -O https://nginx.org/download/nginx-1.26.1.tar.gz 官网下载源码包
解压源码包
[root@web-1 nginx]#tar xf nginx-1.26.1.tar.gz
2.定制nginx启用哪些模块
用户可以指定安装位置,启用哪些模块(功能),不启用哪些模块(功能),可以定制nginx这个软件
[root@web-2 nginx-1.26.1]# ./configure --prefix=/usr/local/nginx-1 --user=limingzhe --group=limingzhe --with-http_ssl_module --with-http_v2_module --with-threads --with-stream --with-http_stub_status_module
3.编写nginx自动安装脚本
[root@web-1 nginx]# cat install_nginx.sh
#!/bin/bash
#创建存放nginx源码的目录
mkdir -p /nginx
#进入目录,开始下载nginx源码包
cd /nginx
curl -O https://nginx.org/download/nginx-1.26.1.tar.gz
#解压源码包
tar xf nginx-1.26.1.tar.gz
cd nginx-1.26.1
#解决依赖的软件包
yum install gcc pcre-devel openssl-devel -y
#配置工作
./configure --prefix=/usr/local/nginx-1 --user=limingzhe --group=limingzhe --with-http_ssl_module --with-http_v2_module --with-threads --with-stream --with-http_stub_status_module
#启动2个进程去编译
make -j 2
#安装编译,将前面编译好的二进制文件和配置文件复制到/usr/local/nginx-1目录下
make install
#新建用户limingzhe
useradd limingzhe -s /sbin/nologin
#修改PATH环境变量,增加nginx的安装目录,方便找到安装的nginx
echo 'PATH=/usr/local/nginx-1/sbin/:$PATH' >>/etc/profile
source /etc/profile
#启动nginx
/usr/local/nginx-1/sbin/nginx
#firewalld and selinux
#stop firewall和设置下次开机不启动firewalld
service firewalld stop
systemctl disable firewalld
#临时停止selinux和永久停止selinux
setenforce 0
sed -i '/^SELINUX=/ s/enforcing/disabled/' /etc/sysconfig/selinux
4.解释文件含义
[root@web-2 nginx-1]# cd /usr/local/nginx-1/
[root@web-2 nginx-1]# ls
conf html logs sbin
conf 存放配置文件的目录
html 存放网站网页的目录
logs 存放日志的
sbin 存放二进制文件
5.执行nginx
[root@web-2 sbin]# ./nginx 执行nginx
nginx: [emerg] getpwnam("limingzhe") failed 发现没有用户limingzhe
[root@web-2 sbin]# id limingzhe 查找也找不到
id: limingzhe: no such user
新建用户
[root@web-2 sbin]# useradd limingzhe -s /sbin/nologin 新建用户limingzhe
[root@web-2 sbin]# ./nginx 执行nginx成功
6.在web1上验证脚本是否可以执行
[root@web-1 nginx]# bash install_nginx.sh 执行脚本
[root@web-1 nginx]# source /etc/profile 在当前终端里执行文件/etc/profile 加载PATH环境变量
然后查看端口和进程检查nginx是否安装成功并启动
三、设置nginx开机启动
/etc/rc.local文件,linux在启动的最后阶段会执行这个脚本里的命令
[root@web-2 nginx-1]# vim /etc/rc.local
#开启自动启动编译安装的nginx
/usr/local/nginx-1/sbin/nginx
[root@web-2 nginx-1]# chmod +x /etc/rc.d/rc.local
然后就完成了开机自启动nginx的设置,可以reboot重启一下服务器后查看进程和端口检查是否启动了nginx