Linux源码包安装Nginx

  • A+
所属分类:Nginx

Nginx 是一款高性能的开源 Web 服务器,以其高并发处理能力、低资源消耗和稳定性而闻名。它采用事件驱动和异步非阻塞 I/O 模型,特别适合于静态内容服务和作为反向代理。Nginx 支持模块化扩展,社区活跃,配置简洁。它广泛应用于互联网行业,特别是在需要处理大量流量和并发连接的场景中。

Nginx特点:
高性能和高并发:Nginx被设计为能够处理成千上万的并发连接,同时保持低内存使用;
模块化设计:Nginx具有高度模块化的设计,使得添加新功能变得容易;
事件驱动和非阻塞IO:Nginx使用异步事件驱动的方法,这使得它在处理请求时非常高效;
资源占用少:Nginx在处理大量请求时,内存和CPU的占用相对较低;
可伸缩性:Nginx可以轻松地水平扩展,通过增加更多的服务器来处理更多的负载;
稳定性:Nginx在处理请求时非常稳定,即使在面临大量请求或系统资源受限的情况下也很少出现崩溃;
反向代理和负载均衡:Nginx支持反向代理和负载均衡,可以分发请求到多个后端服务器;
缓存:Nginx可以缓存静态文件和常用响应,减少后端服务器的负载;
安全性:Nginx提供了一系列的安全特性,如SSL终端、请求限制和访问控制;
配置简单:Nginx的配置文件相对简单,易于理解和维护。

应用场景:
静态内容服务:Nginx非常适合作为静态文件(如HTML、CSS、JavaScript和图片)的服务器;
反向代理和负载均衡:Nginx常用作反向代理服务器,分发请求到后端的应用服务器,同时实现负载均衡;
高并发Web服务:由于Nginx的高性能和高并发处理能力,它适合用于需要处理大量流量的Web服务;
API服务和微服务架构:Nginx可以用于API网关,管理和路由到不同的微服务;
CDN和缓存服务:Nginx可以用作内容分发网络(CDN)的一部分,缓存和分发内容到全球各地的用户;
Web应用防火墙(WAF):通过添加第三方模块,Nginx可以作为Web应用防火墙,提供额外的安全层;
邮件代理:Nginx也可以用作邮件服务器(如Postfix)的代理,处理邮件的转发;
流媒体:Nginx支持HTTP流媒体,可以用于视频点播和直播;
TLS/SSL终端:Nginx支持TLS/SSL,可以用作HTTPS服务的终端,提供安全的Web连接。

Nginx源码包安装

安装依赖

yum -y install pcre-devel openssl-devel

下载Nginx

curl -O https://nginx.org/download/nginx-1.26.2.tar.gz

创建nginx用户

useradd -s /sbin/nologin -M nginx

解压nginx包,配置,编译,安装

tar xf nginx-1.26.2.tar.gz
cd nginx-1.26.2/
./configure --prefix=/usr/local/nginx-1.26.2 --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module --with-stream
make && make install
ln -s /usr/local/nginx-1.26.2/ /usr/local/nginx
useradd -s /sbin-nologin -M nginx
chown -R nginx:nginx /usr/local/nginx*

配置开机自启文件

vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
#PIDFile=/run/nginx.pid
ExecStartPre=/usr/bin/rm -f /run/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

启动服务

systemctl daemon-reload        //重新加载 systemd 管理器守护进程
systemctl enable --now nginx.service        //开机自启并启动
Linux源码包安装Nginx

使用shell安装Nginx

vim nginx.sh
#!/bin/sh
curl -O https://nginx.org/download/nginx-1.26.2.tar.gz
yum -y install pcre-devel openssl-devel
/usr/sbin/useradd -s /sbin/nologin -M nginx
/usr/bin/tar zxvf nginx-1.26.2.tar.gz
cd nginx-1.26.2/
./configure --prefix=/usr/local/nginx-1.26.2 --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module --with-stream
/usr/bin/make
/usr/bin/make install
/usr/bin/ln -s /usr/local/nginx-1.26.2/ /usr/local/nginx
/usr/bin/chown -R nginx:nginx /usr/local/nginx*
/usr/bin/cat > /usr/lib/systemd/system/nginx.service << EOF
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
#PIDFile=/run/nginx.pid
ExecStartPre=/usr/bin/rm -f /run/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF
/usr/bin/systemctl daemon-reload
/usr/bin/systemctl enable --now nginx.service
sh nginx.sh
xxx

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: