使用编译安装Nginx

1、安装环境及软件

操作系统版本:Centos 7.9

Nginx版本:1.22.1

2、编译安装

安装必备软件

#在线可以使用国内阿里云或者清华等镜像源,离线使用本地镜像源
[root@nginx01 ~]# yum -y install gcc pcre-devel openssl-devel zlib-devel

创建nginx用户

#创建nologin的nginx用户
[root@nginx01 ~]# useradd -s /sbin/nologin nginx

下载官网源码包或者上传本地源码包

#将源码包上传或下载到/usr/local/src/目录下
[root@nginx01 ~]# cd /usr/local/src/
[root@nginx01 src]# wget http://nginx.org/download/nginx-1.22.1.tar.gz

解压源码包

#使用tar解压源码包
[root@nginx01 src]# tar xf nginx-1.22.1.tar.gz

编译安装

#进入到解压缩目录进行编译安装
[root@nginx01 src]# cd nginx-1.22.1/

#选择需要安装的模块进行编译安装
[root@nginx01 nginx-1.22.1]# ./configure --user=nginx --prefix=/apps/nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module



[root@nginx01 nginx-1.22.1]# make && make install

#更改安装目录到nginx用户下
[root@nginx01 nginx-1.22.1]# chown -R nginx.nginx /apps/nginx

#查看安装目录/apps/nginx是否存在四个主要目录
[root@nginx01 nginx-1.22.1]# cd /apps/nginx
[root@nginx01 nginx]# ll
drwxr-xr-x 2 nginx nginx 333 Oct 28 07:18 conf
drwxr-xr-x 2 nginx nginx  40 Oct 28 07:18 html
drwxr-xr-x 2 nginx nginx   6 Oct 28 07:18 logs
drwxr-xr-x 2 nginx nginx  19 Oct 28 07:18 sbin

验证版本及编译参数

#将nginx二进制程序设置链接到/usr/sbin/目录下
[root@nginx01 nginx]# ls /apps/nginx/sbin/
[root@nginx01 nginx]# ln -s /apps/nginx/sbin/nginx /usr/sbin/

#查看版本
[root@nginx01 nginx]# nginx -v

#查看编译参数
[root@nginx01 nginx]# nginx -V
图片[1]-使用编译安装Nginx-李佳程的个人主页
版本及编译参数

打开服务查看端口并测试web页面

#启动nginx服务
[root@nginx01 nginx]# nginx

#查看端口
[root@nginx01 nginx]# ss -ntl
图片[2]-使用编译安装Nginx-李佳程的个人主页
图片[3]-使用编译安装Nginx-李佳程的个人主页

关闭服务查看端口

#停止nginx服务
[root@nginx01 nginx]# nginx -s stop
[root@nginx01 nginx]# ss -ntl
图片[4]-使用编译安装Nginx-李佳程的个人主页

创建service文件

#复制同一版本的nginx的yum安装生成的service文件
[root@nginx01 ~]# vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/apps/nginx/run/nginx.pid
ExecStart=/apps/nginx/sbin/nginx -c /apps/nginx/conf/nginx.conf
ExecReload=/bin/sh -c "/bin/kill -s HUP $(/bin/cat /apps/nginx/run/nginx.pid)"
ExecStop=/bin/sh -c "/bin/kill -s TERM $(/bin/cat /apps/nginx/run/nginx.pid)"

[Install]
WantedBy=multi-user.target

#创建pid文件存放目录
[root@nginx01 ~]# mkdir /apps/nginx/run/

#修改nginx配置文件
[root@nginx01 ~]# vim /apps/nginx/conf/nginx.conf
pid   /apps/nginx/run/nginx.pid;

验证service文件

#加载service文件
[root@nginx01 ~]# systemctl daemon-reload

#启动nginx服务
[root@nginx01 ~]# systemctl start nginx
[root@nginx01 ~]# ss -ntl

#设置nginx服务开机自启动
[root@nginx01 ~]# systemctl enable nginx

#查看nginx服务状态
[root@nginx01 ~]# systemctl status nginx
图片[5]-使用编译安装Nginx-李佳程的个人主页
图片[6]-使用编译安装Nginx-李佳程的个人主页
图片[7]-使用编译安装Nginx-李佳程的个人主页
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享