linux源码编译安装Nginx1.25.4

目录

1、安装准备

1.1、下载Nginx源码包

1.2、上传源码包

1.3、解压源码包

1.4、关闭防火墙和SElinux

2、准备相关的依赖包以及环境(在Nginx解压目录下)

2.1、安装Nginx依赖的库

2.2、安装源码编译

2.3、执行脚本生成makefile

3、编译安装

4、编写systemd单元文件管理nginx服务


1、安装准备

1.1、下载Nginx源码包

除了Apache,Linux系统中还常常使用另一款Web服务器软件Nginx,它显著的特点是对接高并发业务提供很好的支持。最新版本的nginx是以源代码形式发布的,可以到其官网

https://nginx.org/en/download.htm上下载相应的源代码包,有tar.gz和zip两种格式,这里下载tar.gz格式的源代码包

1.2、上传源码包

将下载好的压缩包上传至 /root目录中,使用MobaXterm可快速上传压缩包至虚拟机中,再移动至/usr/local/src下

mv /root/nginx-1.25.4.tar.gz /usr/local/src/

1.3、解压源码包

tar -xzvf nginx-1.25.4.tar.gz

解压后生成目录为下

这些目录的主要功能如下

auto:用于编译时的文件,以及相关lib库,编译时对对操作系统的判断等,都是为了辅助./configure命令执行的辅助文件。
conf:存放 Nginx 服务器配置文件
configure:命令,用于对即将安装的软件的配置,完成 makefile 编译文件的生成
contrib:存放由其他机构贡献的文档材料
html:存放 Nginx 欢迎页面
man:nginx命令的帮助文档,linux上可以使用man命令查看帮助
src:存放 Nginx 源码

1.4、关闭防火墙和SElinux

systemctl stop firewalld.service 
vim /etc/selinux/config  

SELINUX改为disable

setenforce 0  #关闭selinux
getenforce  #查看selinux状态,为Permissive就是关闭状态

2、准备相关的依赖包以及环境(在Nginx解压目录下)

2.1、安装Nginx依赖的库

以下命令可直接安装

yum install gcc gcc-c++ pcre  pcre-devel openssl openssl-devel zlib  zlib-devel -y

或者

安装zlib库

yum -y install zlib zlib-devel

因为HTTPrewrite模块要求安装PCRE库,安装pcre库

yum -y install pcre pcre-devel

因为SSL模块要求OpenSSL库,安装openssl库

yum -y install openssl openssl-devel

2.2、安装源码编译

如果没有安装gcc-c++,可以安装以下开发包,可以一次性安装

yum -y  groupinstall 'Development Tools'

使用configure命令时会验证环境,依赖包环境安装不全和没有编译工具则可能出现如下错误

2.3、执行脚本生成makefile

使用 configure 命令可以生成make命令需要的编译文件makefile

安装完如上编译工具后,再执行脚本

可以使用-help查看你需要配置的参数

以下为简单命令

 ./configure --prefix=/usr/local/nginx --with-http_ssl_module

3、编译安装

使用make&&make install执行编译安装命令,make 为编译命令,make install 为安装命令 

make
make install

安装完毕后启动nginx同时可以查看Nginx进程

/usr/local/nginx/sbin/nginx
ps -ef |grep nginx

 这个时候可以浏览器输入自己的IP验证Nginx欢迎页面,成功启动画面:

4、编写systemd单元文件管理nginx服务

Nginx作为服务程序,需要为其编写一个单元文件以便systemd能够管理它,在/usr/lib/systemd/system目录下创建一个nginx.service文本文件,设置如下内容

[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
# Nginx will fail to start if /run/nginx.pid already exists but has the wrong
# SELinux context. This might happen when running `nginx -t` from the cmdline.
# https://bugzilla.redhat.com/show_bug.cgi?id=1268621
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=mixed
PrivateTmp=true

[Install]
WantedBy=multi-user.target

要让systemd重新识别此单元文件,通常执行systemctl daemon-reload命令重载配置,这样就可以使用systemd来管理nginx的启动、重启。  

systemctl daemon-reload
systemctl restart nginx
systemctl status nginx.service #查看状态

可以看到nginx的状态为running~

本篇文章参考博客如下

 Nginx源码安装_rhel8源码安装nginx-CSDN博客

 linux 环境nginx源码安装_linux nginx源码安装-CSDN博客

  • 40
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值