目录
3、执行configure脚本生成编译配置文件Makefile
三、编写systemd单元文件管理nginx服务(开机自启)
一、源代码安装原因
如果yum、rpm软件包不能提供所需软件时,就要考虑源代码安装,获取源代码包,进行编译安装。另外源代码包可以根据用户的需要对软件加以定制,有的还允许二次开发,本篇博客将以nginx为例进行源代码安装。
二、操作步骤
在源代码安装nginx之前,得确保已经配置好国内镜像源,未配置且不会配置的同学可参考以下链接:Linux红帽RedHat9.0网络(阿里)源与本地源搭建-CSDN博客
1.下载并解压软件包
在nginx官网找到Linux版本相应的源代码包:http://nginx.org/download/
有tar.gz和zip两种格式,这里下载自己所需版本tar.gz格式的源代码包,不得低于1.20.0(这篇博客以nginx-1.22.1.tar.gz为例)
复制自己所需版本的下载链接,在虚拟机里下载源代码包
wget https://nginx.org/download/nginx-1.22.1.tar.gz
解压源代码包
tar -zxvf nginx-1.22.1.tar.gz
2、安装所需依赖包
Nginx是基于C语言开发的,所以安装nginx前需要安装C语言编译环境,HTTP rewrite 模块要求安装PCRE库,SSL模块要求OpenSSL库,可以执行以下命令来安装所需的依赖包
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
3、执行configure脚本生成编译配置文件Makefile
在执行configure脚本生成编译配置文件Makefile前需要进入到nginx-1.22.1目录下
cd nginx-1.22.1
进入nginx-1.22.1目录后即可执行configure脚本生成编译配置文件Makefile
./configure --prefix=/usr/local/nginx
注:--prefix是配置安装的路径,如果不配置该选项,安装后可执行文件默认放在/usr/local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr/local/share,比较凌乱。上述命令配置--prefix,可以把所有资源文件放在/usr/local/nginx的路径中,不会杂乱
4、编译源代码并安装软件
make & make install
5、查看nginx是否安装成功
Whereis nginx
Ps:出现/usr/local/nginx即代表成功安装
6、访问nginx
如果想要成功访问nginx,需要关闭防火墙或者开放指定的端口号,本文以关闭防火墙为例
systemctl stop filewalld
关闭防火墙之后,进入浏览器输入自己虚拟机的IP看到以下界面即代表访问成功
三、编写systemd单元文件管理nginx服务(开机自启)
在/usr/lib/systemd或/etc/systemd/system目录下创建一个nginx.service文本文件,设置如下内容:
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network.target remote-fs.target nss-lookup.target
[Service] Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
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
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
设置完之后保存并退出,要让systemd重新识别此单元文件,通常执行systemctl daemon-reload命令重载配置,或者重启系统,这样就可以使用systemd来管理nginx的启动、重启、随机启动等。
执行以下命令使nginx随机启动:
systemctl enable nginx.service
四、总结
Nginx的主要作用可以归结为以下几点:
- Web服务器:nginx可以高效地处理静态文件,如图片、文件等,是一个很好的图片、文件服务器。与Apache相比,nginx使用更少的资源,支持更多的并发连接,表现出更高的效率。因此,nginx特别受到虚拟主机提供商的欢迎。
- 负载均衡服务器:nginx通过反向代理实现服务的负载均衡,将请求按照一定的策略转发到不同的服务器上,从而避免服务器单节点故障,提高网站的可靠性和可扩展性。负载均衡策略包括轮询、加权轮询、源地址哈希法等。
- 反向代理服务器:nginx作为反向代理服务器,可以隐藏后端服务器的细节,并提供额外的安全性。通过nginx的反向代理功能,可以在请求进入服务器之前进行过滤和处理,降低恶意攻击和非法请求的风险。
- 邮件代理服务器:nginx也是一个非常优秀的邮件代理服务器,最初开发的目的之一就是作为邮件代理服务器。
- 缓存加速:nginx具有强大的缓存功能,可以缓存经常访问的静态内容或动态内容,提供快速的响应速度和减少服务器负载。
Nginx是一个高性能、稳定性、丰富的功能以及低廉的成本的HTTP和反向代理服务器,可以大幅提升网站的响应速度和并发处理能力,提供更好的用户体验,广泛应用于Web服务领域。