下面是关于Linux源码安装nginx1.20.2的操作流程
目录
2.2 执行configure脚本生成makefile配置文件
前言
在信息化时代,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