Linux下Nginx的源码编译安装

简介: Linux下Nginx的源码编译安装

在Linux下,我们虽然可以使用包管理器直接安装Nginx,但是如果想要是最新的版本,那还是需要通过源码安装。源码安装Nginx的过程非常简单,今天就以Debian系统为例进行介绍。

1,下载Nginx源代码并解压

官网下载源代码:

image.png

可以看到上述有两个版本:

  • Mainline 主线版本,是最新的版本,即开发版
  • Stable 稳定版

在生产环境下,建议使用最新的Stable version的Nginx。

下载后是一个压缩包,上传到服务器或者Linux系统并解压:

tar -xzvf 下载的源码压缩包路径

2,安装编译必要的库并开始配置

nginx中有很多模块以实现不同的功能,不过默认情况下只有最基本的模块例如转发模块等等。可以根据实际情况选择是最精简编译还是编译全部模块功能。

我也将分这两种情况来说明,大家根据实际情况选择。

(1) 精简编译配置

除了基本功能和https的支持模块,其它模块都不进行编译安装。

先安装依赖库:

sudo apt install gcc make libpcre3-dev zlib1g-dev libssl-dev

然后通过cd命令进入你解压的nginx源码文件夹里,执行构建配置:

./configure --with-http_ssl_module

如图说明配置检查成功:

image.png

可见这些nginx的关键文件要被安装至以下位置:

  • nginx程序主体:/usr/local/nginx/sbin/nginx
  • nginx配置文件目录:/usr/local/nginx/conf
  • 错误日志:/usr/local/nginx/logs/error.log

这些文件位置也可以在上述执行./configure命令时加上参数修改,详情可以见官方文档

(2) 完整编译配置

完整编译将会编译全部的模块,需要安装更多依赖,执行以下命令安装:

sudo apt install gcc make libpcre3-dev libssl-dev zlib1g-dev libxml2-dev libxslt1-dev libgd-dev libgeoip-dev libperl-dev

然后开始配置:

./configure --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module --with-http_image_filter_module --with-http_geoip_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_slice_module --with-http_stub_status_module --with-http_perl_module --with-mail_ssl_module --with-stream --with-stream_ssl_module --with-stream_realip_module --with-stream_geoip_module --with-stream_ssl_preread_module

等待配置成功没有报错即可。

3,构建和安装

上述配置完成,就可以执行编译命令了:

make

或者多线程编译:

# 4线程
make -j4

编译完成,执行安装命令:

make install

默认会被安装至/usr/local/nginx,也可以通过DESTDIR路径指定make install时释放程序位置:

make DESTDIR=要释放到的位置 install

不过释放到其它位置nginx可能无法正常运行,除非你要自己制作安装包,否则不推荐这么做。

安装完成,我们可以把nginx可执行主程序文件链接到/usr/bin下使得我们可以使用nginx命令:

ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

4,无法运行问题

一般来说由于上述安装了依赖库,对应的运行环境也会自动安装。若编译后nginx无法运行通常是缺少依赖,安装依赖即可。

对于精简编译安装

sudo apt install libc6 zlib1g libpcre3 libssl1.1

对于完整全模块编译安装

sudo apt install libc6 libpcre3 libssl1.1 zlib1g libxml2 libxslt1.1 libgd3 libgeoip1 libperl5.32
相关文章
|
16天前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
14天前
|
负载均衡 网络协议 应用服务中间件
web群集--rocky9.2源码部署nginx1.24的详细过程
Nginx 是一款由 Igor Sysoev 开发的开源高性能 HTTP 服务器和反向代理服务器,自 2004 年发布以来,以其高效、稳定和灵活的特点迅速成为许多网站和应用的首选。本文详细介绍了 Nginx 的核心概念、工作原理及常见使用场景,涵盖高并发处理、反向代理、负载均衡、低内存占用等特点,并提供了安装配置教程,适合开发者参考学习。
|
23天前
|
缓存 应用服务中间件 nginx
安装nginx-http-flv-module模块
本文介绍如何为Nginx安装`nginx-http-flv-module`模块。此模块基于`nginx-rtmp-module`二次开发,不仅具备原模块的所有功能,还支持HTTP-FLV播放、GOP缓存、虚拟主机等功能。安装步骤包括:确认Nginx版本、下载相应版本的Nginx与模块源码、重新编译Nginx并加入新模块、验证模块安装成功。特别注意,此模块已包含`nginx-rtmp-module`功能,无需重复编译安装。
65 1
|
27天前
|
负载均衡 应用服务中间件 Linux
在Linux中,常用的 Nginx 模块有哪些,常来做什么?
在Linux中,常用的 Nginx 模块有哪些,常来做什么?
|
27天前
|
应用服务中间件 Linux nginx
在Linux中,如何统计ip访问情况?分析 nginx 访问日志?如何找出访问页面数量在前十位的ip?
在Linux中,如何统计ip访问情况?分析 nginx 访问日志?如何找出访问页面数量在前十位的ip?
|
27天前
|
负载均衡 监控 应用服务中间件
在Linux中,lvs/nginx/haproxy 优缺点?
在Linux中,lvs/nginx/haproxy 优缺点?
|
27天前
|
缓存 负载均衡 应用服务中间件
在Linux中,Squid、Varinsh和Nginx有什么区别,工作中怎么选择?
在Linux中,Squid、Varinsh和Nginx有什么区别,工作中怎么选择?
|
28天前
|
Ubuntu 应用服务中间件 Linux
在Linux中,如何配置Web服务器(如Apache或Nginx)?
在Linux中,如何配置Web服务器(如Apache或Nginx)?
|
27天前
|
负载均衡 应用服务中间件 Linux
在Linux中,LVS、Nginx、HAproxy有什么区别?工作中怎么选择?
在Linux中,LVS、Nginx、HAproxy有什么区别?工作中怎么选择?
|
26天前
|
应用服务中间件 Linux PHP
【Azure 应用服务】App Service For Linux 环境中,如何修改 Nginx 配置中 server_name的默认值 example.com
【Azure 应用服务】App Service For Linux 环境中,如何修改 Nginx 配置中 server_name的默认值 example.com