目录
前言
为什么使用nginx
为什么要源码编辑安装nginx
目录
前言
为什么使用nginx
为什么要源码编辑安装nginx
源码编辑nginx下载安装
步骤 1:安装依赖
步骤 2:上传nginx.tar.gz文件
这里有两种方法
一.虚拟机直接下载nginx压缩文件
二.win11系统中下载,使用远程连接软件传输到虚拟机(小编所使用的)
1.进入nginx安装官网选择你所想要的版本下载
2.解压文件
3.解压文件后进入nginx页面以及配置编译项
以上源码编译的规则如下所示
以下是与模块相关的选项:
HTTP模块:
其他模块:
邮件模块:
性能选项:
步骤 5:编译和安装
步骤 6:启动 Nginx
编写systemd单元文件管理nginx服务
引子
为什么编写systemd单元文件管理nginx服务
系统初始化与启动:
依赖管理:
日志记录:
资源限制:
重载配置:
监控和通知:
标准化管理:
编写文件管理nginx服务
1.进入/usr/lib/systemd/system或者/etc/systemd/system目录下创建一个nginx.service的文件
2.编辑nginx.service文件
[Unit] 部分
[Service] 部分
[Install] 部分
3.重载配置文件以及启用nginx和检查nginx的启用
总结
使用Nginx的原因主要有以下几点:
综上所述,Nginx因其高性能、优秀的代理和负载均衡功能、高度的可扩展性和可靠性、丰富的功能和灵活的配置,以及庞大的第三方模块支持,成为许多网站和应用的首选服务器软件。无论是个人开发者还是大型企业,都可以从Nginx中获益。
源码编辑安装Nginx有以下几个原因:
灵活性:源码安装Nginx可以提供更大的灵活性,允许用户根据自己的需求进行定制。源码安装允许用户自定义编译选项,可以选择性地启用或禁用特定的模块和功能,以满足特定的应用场景或性能要求。
控制版本:源码安装使得用户能够选择并控制安装的Nginx版本。这对于需要特定版本以兼容旧系统或特定应用程序的用户来说尤为重要。此外,源码安装还可以使用户及时获得最新版本的Nginx,从而利用最新的功能和修复的安全漏洞。
依赖性控制:通过源码安装,用户可以更好地控制Nginx的依赖项和依赖版本。这有助于避免潜在的系统库冲突和版本不兼容问题,确保Nginx的稳定运行。
性能优化:源码安装允许用户根据硬件和系统环境进行性能优化。用户可以根据自己的硬件架构和性能需求,调整编译选项以优化Nginx的性能,如启用或禁用某些功能、调整线程模型等。
学习和定制:源码安装Nginx对于想要深入了解Nginx内部工作原理和定制开发的用户来说是一个很好的学习机会。通过源码编译和安装,用户可以更深入地了解Nginx的架构、模块和功能,为后续的定制开发或问题解决提供基础。
需要注意的是,源码安装Nginx相对复杂一些,需要一定的技术基础和编译经验。对于初学者或没有特定需求的用户来说,使用预编译的二进制包或包管理器进行安装可能更为简便和方便。
首先,你需要安装 Nginx 编译所需的依赖库。这些库可能因你的 Linux 发行版而异。以下是一些常见的依赖库:
当然为了迅速和安全的更新软件以及下载依赖库,我们需要配置国内源或着本地源,配置过程可以参照小编的这个博客
Linux rhel9 配置本地yum源和国内yum源(适合新手小白体质)-CSDN博客https://blog.csdn.net/cx2004811/article/details/136499181?spm=1001.2014.3001.5501配置完成后,更新软件和下载nginx所依赖的环境
sudo apt-get update | |
sudo apt-get install gcc g++ make libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev |
gcc 和 g++:
make:
libpcre3 和 libpcre3-dev:
zlib1g 和 zlib1g-dev:
libssl-dev:
如图所示,为安装nginx的依赖
使用命令
wget http://nginx.org/download/nginx-x.x.x.tar.gz
这样子可以直接在虚拟机中下载
这里不推荐下载最新的版本,因为可能产生版本不适用的可能,导致失败,小编使用的是nginx-1.20.2.tar.gz版本
点击以下网址进入nginx下载官网
http://nginx.org/download
下载之后传入虚拟机,小编传入的是用户页面
传输进入后使用ls命令可以查看,小编此处已经解压完成了
解压的命令是
tar -xzvf nginx-1.20.2.tar.gz
使用cd命令进入nginx目录下
在进入后源码编译文件,使用的命令如下
./configure \ --prefix=/usr/share/nginx \ --sbin-path=/usr/sbin/nginx \ --modules-path=/usr/lib/nginx/modules \ --conf-path=/etc/nginx/nginx.conf \ --error-log-path=/var/log/nginx/error.log \ --http-log-path=/var/log/nginx/access.log \ --with-pcre \ --with-http_ssl_module \ --with-http_realip_module \ --with-http_addition_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_random_index_module \ --with-http_secure_link_module \ --with-http_stub_status_module \ --with-http_auth_request_module \ --with-threads \ --with-stream \ --with-stream_ssl_module \ --with-stream_realip_module \ --with-stream_geoip_module \ --with-http_slice_module \ --with-mail \ --with-mail_ssl_module \ --with-file-aio \ --with-http_v2_module
这些./configure命令选项是用于配置和编译Nginx源代码的参数。Nginx是一个高性能的HTTP和反向代理服务器,邮件代理服务器,以及通用的TCP/UDP代理服务器。下面是每个选项的详细解释:
这些选项允许用户定制Nginx的安装,以满足其特定的需求和环境。
当以上界面出现后,标志着源码编译规则布置完成
这将开始编译 Nginx,并将编译好的文件安装到指定的目录。
如以上便是源码编译写入完成
安装完成后,你可以使用以下命令启动 Nginx,在编译完成后,你的nginx启动程序存在于
/uer/local/nginx/sbin中进入后便可以查看到你的程序
cd /usr/local/nginx/sbin/ ./nginx
在虚拟机中启动后,便可以在虚拟机中的网站上搜索到你的页面,但是在主机中还是不能打开的话,这个原因大概是出在了防火墙上,需要在虚拟机上关闭你的防火墙
sudo systemctl stop firewalld
防火墙关闭后,在你的主机电脑上输入你的虚拟机IP地址就可以直接进入此页面,应为我们配置的nginx.conf中使用的端口是默认端口80,所以不需要输入端口号就可以直接进入
systemd是Linux系统(特别是较新的发行版)的初始化系统和服务管理器。它负责在系统启动时启动服务,并在系统关闭时停止服务。通过为Nginx编写systemd单元文件,可以确保Nginx在系统启动时自动启动,并在系统关闭时正确停止。
systemd允许定义服务之间的依赖关系。例如,如果Nginx依赖于某个数据库服务,你可以在Nginx的systemd单元文件中定义这种依赖,确保数据库服务在Nginx之前启动。
systemd提供了强大的日志记录功能,可以记录服务的启动、停止和任何错误。通过systemd管理Nginx,你可以轻松访问这些日志,以便快速诊断问题。
systemd允许你为服务设置资源限制,如CPU、内存和文件描述符的使用量。这对于管理大型Nginx部署或限制潜在的资源滥用非常有用。
systemd允许在不重启服务的情况下重载配置。对于Nginx这样的服务来说,这是一个非常有用的功能,因为你可以在不中断现有连接的情况下应用新的配置更改。
systemd可以与多种监控工具集成,以便在系统或服务出现问题时发送通知。这使得管理员能够迅速响应并解决潜在问题。
使用systemd单元文件来管理Nginx可以确保你的服务管理策略在整个系统中保持一致。这有助于减少配置错误,并使系统更容易维护。
为什么要使用.service的后缀
编写的文件使用.service作为后缀,主要是因为在Linux系统中,.service文件是专用于systemd系统与服务管理器的配置文件。systemd是Linux系统的初始化系统和服务管理器,它负责在系统启动时启动服务,并在系统运行时管理服务。
.service文件包含了服务的启动、停止、重启等操作的指令,以及服务的相关配置信息,如服务的名称、描述、依赖关系等。使用.service作为文件后缀,有助于系统和管理员识别这些文件是用于配置和管理服务的,从而方便进行管理和维护。
此外,通过修改.service文件,可以对系统服务进行定制化配置,以满足不同的需求。同时,这些文件也是系统管理员进行故障排除和性能优化的重要工具之一。因此,在编写用于配置Linux服务的文件时,使用.service作为后缀是符合规范和习惯的做法。
所使用的命令为
cd /usr/lib/systemd/system vim nginx.service
所需要编辑的指令为以下可以直接复制上去
[Unit] Description=The nginx HTTP and reverse proxy server After=network-online.target remote-fs.target nss-lookup.target Wants=network-online.target [Service] Type=forking PIDFile=/run/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/bin/rm -f /run/nginx.pid ExecStartPre=/usr/sbin/nginx -t ExecStart=/usr/sbin/nginx ExecReload=/usr/sbin/nginx -s reload KillSignal=SIGQUIT TimeoutStopSec=5 KillMode=mixed PrivateTmp=true [Install] WantedBy=multi-user.target
如下是以上代码的解释
通常使用的命令是
systemctl daemon-reload
如图所示,便是编写完成并且打开使用了nginx
源码编辑安装 Nginx 提供了从源代码构建和定制 Nginx 服务器的机会,使得管理员和开发者能够根据需要添加或移除模块,优化性能,并适应特定的应用场景。这个过程虽然繁琐,但确保了Nginx的完整性和兼容性,并且提供了最大的灵活性。
编写 systemd 单元文件则是实现 Nginx 服务自动化管理的关键步骤。通过定义服务的启动顺序、依赖关系、执行命令等,systemd 能够确保 Nginx 在系统启动时自动运行,并在需要时进行重启或停止。这种管理方式使得 Nginx 服务的监控和维护变得更加便捷和高效。
综合来看,源码编辑安装 Nginx 并编写 systemd 单元文件是构建稳定、可靠且高效 Web 服务器的关键步骤。它们不仅提升了服务器的性能和安全性,还简化了服务的管理和维护工作,为网站和应用的稳定运行提供了有力保障。