首页 > 系统相关 >Linux源码安装nginx1.20.2

Linux源码安装nginx1.20.2

时间:2024-03-14 19:58:06浏览次数:32  
标签:nginx1.20 编译 Nginx nginx 源码 install Linux 安装

下面是关于Linux源码安装nginx1.20.2的操作流程


目录

前言

1,安装准备

1.1下载安装包

 1.2 上传安装包

1.3 解压 

 1.4关闭防火墙和selinux

2,安装 nginx依赖库以及编译环境

2.1安装nginx依赖库 

2.2 执行configure脚本生成makefile配置文件

2.2.1 可能出现的错误 

3,编译安装 

4,测试nginx 

5,编写systemd单元文件管理nginx服务 

总结


前言

在信息化时代,Web服务器作为互联网的基础设施之一,扮演着举足轻重的角色。Nginx,作为一款高性能、高并发的HTTP和反向代理服务器,因其出色的性能和稳定性,在Web服务领域备受青睐。而源码安装Nginx则成为了一种更为灵活和可定制化的安装方式,为高级用户和系统管理员提供了更多的选择和可能性。

Nginx 1.20.2作为Nginx系列的一个稳定版本,继承了Nginx一贯的优异性能,并在功能和安全性上进行了诸多改进。通过源码安装Nginx 1.20.2,我们可以根据实际需求进行定制化的编译和配置,从而充分发挥Nginx的性能优势,满足各种复杂的Web服务需求。

源码安装Nginx 1.20.2的好处不仅在于其高度的可定制性,还在于其对系统环境的深入了解。通过源码安装,我们可以深入了解Nginx的编译过程,熟悉其依赖关系和运行环境,从而更好地进行性能调优和故障排查。此外,源码安装还可以帮助我们避免一些潜在的包管理依赖问题,确保Nginx的稳定运行。

在当前的互联网环境下,Web服务的性能和稳定性对于企业的业务发展至关重要。因此,选择源码安装Nginx 1.20.2,不仅可以满足我们对高性能Web服务器的需求,还可以提高我们对系统的掌控能力,为企业的稳健发展提供有力保障。


1,安装准备

1.1下载安装包

在官网下载nginx1.20.2:nginx news: 2021​​​​​​

 1.2 上传安装包

将下载好的压缩包上传到/root目录下面  

 将上传的压缩包移动到/usr/local/src/下面

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

1.3 解压 

进入/usr/local/src/目录里面查看是否移动成功并解压

cd /usr/local/src/

tar -xzvf nginx-1.20.2.tar.gz 

查看里面的内容

cd nginx-1.20.2/

ll 

 这些目录的主要功能有:

  • auto目录:Nginx会自动识别操作系统,并执行对应的脚本。
  • CHANGES文件:这个文件记录了Nginx的最新和历史版本的变更信息,方便用户了解版本之间的差异和更新内容。
  • conf目录:这个目录通常用于存放Nginx的配置文件。安装成功后,核心配置文件会被拷贝到安装目录下的conf文件夹中。
  • configure脚本:这是一个编译配置脚本,它会引用auto目录下的脚本文件来生成版本信息头文件、默认被包含的模块的声明代码和Makefile文件。这些文件对于后续的编译和安装过程至关重要。
  • contrlib目录:这个目录包含了Nginx的工具包,这些工具可能在Nginx的编译、安装或运行过程中被使用。
  • html目录:这个目录默认存放的是静态文件,包括index.html等。安装成功后,这些文件会被拷贝到安装目录下,作为Nginx服务器的默认网页内容。
  • LICENSE文件:这个文件包含了Nginx的协议信息,通常是版权和许可协议。
  • man目录:这个目录通常包含Nginx的手册文件,提供了Nginx的使用和配置说明。
  • src目录:这是Nginx源码存放的主要目录。它包含了Nginx的核心代码和各个模块的源码。其中有几个重要的子目录:core,event,http,mail

 1.4关闭防火墙和selinux

systemctl stop firewalld.service

vim /etc/selinux/config

关闭selinux:setenforce 0

查看selinux状态是否为Permissive状态:getenforce 

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

 

安装c和c++编译环境

yum install gcc gcc-c++

 

 因为HTTP rewrite模块要求安装PCRE库 

yum install pcre-devel 

 

因为 SSL 模块要求 OpenSSL库,解决方法是执行以下命令: yum install openssl-devel 

 yum install openssl-devel 

 

2.2 执行configure脚本生成makefile配置文件

 安装好上面的编译环境后,执行configure脚本生成编译配置文件Makefile

 如果想要直接添加参数,可以执行./configure --help来查看它的功能

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

 

--user=nginx指定运行权限的用户;

--group=nginx 指定运行权限的用户组;

--prefix=/usr/local/nginx指定安装路径;

--with-http_stub_status_module 表示支持Nginx状态查询;

--with-http_ssl_module 表示启用 SSL 支持;

--with-http_gzip_static_module 表示启用 GZIP功能。 

2.2.1 可能出现的错误 

1,如果没有安装有C++编译环境,将给出“./configure: error: C compiler cc is not found ”的提示,解决方法是执行以下命令安装编译环境:yum install gcc gcc-c++

2,然后重新执行上述configure脚本。此处又给出以下错误提示:

./configure: error: the HTTP rewrite module requires the P CRE library.

You can either disable the module by using -without-http_ rewrite_module option, or install the PCRE library into the system, or build the PCRE library statically from the source with nginx by using -with-pcre=<path>option.
这是因为HTTP rewrite模块要求安装PCRE库,可以屏蔽该模块,这里执行如下命令安装 PCRE库:
yum install pcre-devel
3,重新执行上述configure脚本。结果例中又给出出以下错误提示:

./configure: error: SSL modules require the OpenSSL library.
You can either do not enable the modules, or install the OpenSSL library into the system, or build the OpenSSL library statically from the source with nginx by using -with-openssl=<path> option.
这是因为 SSL 模块要求 OpenSSL库,解决方法是执行以下命令:

yum install openssl-devel
再一次执行上述configure脚本,编译成功。 

3,编译安装 

 使用两个命令make和make install,其中make为编译命令,make install为安装命令

make && make install

4,测试nginx 

如果当前在运行Apache服务器,请将它停止

systemctl stop httpd.service 

启动nginx

/usr/local/nginx/sbin/nginx 

查看nginx的进程  

在浏览器里面输入ip地址可以进入nginx欢迎界面

5,编写systemd单元文件管理nginx服务 

在/usr/lib/systemd/system或/etc/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 deamon-reload 命令重新配置,或者重启系统,用systemctl status nginx.service来查看其状态

设置随机启动  


总结

以上就是Linux源码安装的全过程。总的来说,源码安装Nginx 1.20.2是一种高效、稳定且灵活的Web服务器安装方式,无论是个人开发者还是企业系统管理员,都能从中受益。它不仅能够满足我们当前对高性能Web服务器的需求,也为我们未来的业务拓展和技术升级打下了坚实的基础。

如果有错误,欢迎各位大佬指出,如果觉得还不错,赶快点赞收藏吧~

参考博客:

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

标签:nginx1.20,编译,Nginx,nginx,源码,install,Linux,安装
From: https://blog.csdn.net/qxiaoran/article/details/136607823

相关文章

  • Linux用户与权限
    Linux用户与权限用户、用户组概述Linux是多用户多任务操作系统,支持多个用户在同一时间内登陆,不同用户执行不同的任务,并且互不影响。不同用户具有不同的操作权限,每个用户在权限允许的范围内完成不同的任务。权限最高的用户叫做root,称之为超级管理员用户。用户组是具......
  • Linux文件权限管理命令
    文件权限管理命令概述文件权限分为3种:读r、写w、执行x;文件归属分为3类:user、group、other;为了便于权限管理,每个权限都有对应的数字:0表示没有权限、4表示读权限、2表示写权限、1表示执行权限方式1:数字表示法chmod777-R文件|文件夹其中-R用于递归修改文件......
  • Linux软件安装
    Linux软件安装rpm包管理器概述rpm是RH系列Linux系统的包管理器(Red-HatPackageManager),也是RH系列安装的软件包后缀名。当下这套标准已经扩大成为了行业标准,不仅仅局限于RH系列Linux系统。rpm操作指的是使用rpm命令进行软件的查看、安装、卸载。rpm弊端:需要自己提前......
  • Linux常用系统管理命令
    Linux常用系统管理命令时间、日期查看date命令:用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记。cal(calendar)命令:用于用于显示当前或者指定日期的公历。[root@node1linux02]#dateTueMay1814:44:13CST2023[......
  • Linux常用命令
    Linux常用命令一、Linux文件系统文件系统是操作系统用于明确存储设备(如磁盘)上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统的结构通常叫做目录树结构,从/根目录开始。Lin......
  • 在Linux中,文件系统层次结构是什么?以及目录作用是什么?
    在Linux操作系统中,文件系统层次结构是一种树状结构,也称为目录层级结构,它的顶部是根目录/。这个结构遵循FilesystemHierarchyStandard(FHS),它是一套规范,用来指导Linux及其他类Unix系统中文件和目录应该如何布局以保持一致性。下面是Linux文件系统层次结构的主要组成部分以及各目......
  • 在Linux中,内核主要功能及作用是什么?
    在Linux操作系统中,内核作为其核心组件,承担着系统底层服务和关键管理职责。以下是Linux内核主要功能及作用的详细说明:进程管理:进程调度:内核通过调度算法控制进程对CPU的使用权,确保多个进程公平地分享计算资源。它负责创建、终止进程,以及在进程状态改变时进行上下文切换。进程......
  • 在Linux中,如何查看系统当前运行的进程以及它们的状态?
    在Linux中查看当前系统运行的进程以及它们的状态,可以使用多种命令工具,以下是一些常用的方法:ps命令:最基础的查看进程信息方式是使用ps命令。简单查看当前终端下的进程,可以输入:ps若想查看所有进程,包括其他终端下的进程,可以加上-e参数:ps-e若要查看详细的进程信......
  • linux系统对于docker容器的监控
    容器监控容器监控原生命令操作问题容器监控三剑客CAdvisorInfluxDBGranfanacompose编排监控工具新建目录创建CIG.yml文件启动docker-compose测试容器监控CAdvisor+InfluxDB+Granfana原生命令操作dockerstats问题通过dockerstats命令可以很方便的看到当......
  • linux系统创建私有容器仓库和docker容器的资源限制
    私有仓库创建和资源限制创建私有仓库docker资源限制系统压力测试工具stresscpu资源限制限制CPUShare限制CPU核数CPU绑定mem资源限制限制IO创建私有仓库上传harbor压缩包解压下载docker-compose进入解压后的目录修改配置文件mvharbor.yml.tmplharbor.ymlv......