目录
前言
Nginx是一款高性能的HTTP和反向代理服务器,也是IMAP/POP3/SMTP代理服务器。它的重要性主要体现在以下几个方面:
高性能:Nginx采用事件驱动的异步模型,可以处理大量并发请求,响应速度快。与传统的Web服务器相比,Nginx能够处理更多的并发连接,并有效地分发请求到后端服务器,从而提高网站的响应速度和并发处理能力。此外,Nginx还非常节省资源,对CPU和内存的占用率很低。
负载均衡:Nginx可以在后端服务器之间进行负载均衡,通过配置不同的负载均衡策略,如轮询、最小连接数法等,将请求均匀地分发到多个服务器上,避免单个服务器过载或故障导致整个网站不可用。负载均衡不仅能提高网站的可靠性和可扩展性,还能充分利用服务器资源,提供更好的用户体验。
安全性:Nginx具有一系列的安全功能,如DDos攻击防护、基于IP地址的访问控制、SSL/TLS加密等,可以帮助保护Web应用程序的安全。此外,Nginx还支持HTTPS和SSL加密,确保数据在传输过程中的安全性。
反向代理:作为反向代理服务器,Nginx可以隐藏后端服务器的细节,并提供额外的安全性。在请求进入服务器之前,Nginx可以进行过滤和处理,降低恶意攻击和非法请求的风险。
可定制性和可扩展性:Nginx具有一个丰富的模块系统,可以根据需求添加或删除模块。此外,Nginx还支持自定义Lua脚本,通过Lua脚本可以实现高级功能。这种灵活性使得Nginx可以根据不同的应用场景进行定制和优化。
由于Nginx具有以上诸多优点,它已经被越来越多的网站和应用所采用,成为现代Web架构中不可或缺的一部分。
1 依赖库安装
1.安装gcc编译环境:
安装GCC编译器是安装Nginx的一个前提条件,主要有以下几个原因:
源代码编译:Nginx是一个开源项目,其源代码通常是用C语言编写的。为了从源代码编译安装Nginx,需要一个C语言编译器,而GCC(GNU Compiler Collection)是最常用的C语言编译器之一。
依赖管理:在安装Nginx的过程中,可能还需要编译和安装一些依赖库,如PCRE(Perl Compatible Regular Expressions)库、zlib库等。这些库通常也是用C语言编写的,因此同样需要GCC来编译。
性能优化:GCC编译器提供了一系列优化选项,可以帮助开发者优化代码的性能。对于Nginx这样的高性能Web服务器来说,优化是非常重要的。通过GCC编译器,可以确保Nginx的性能达到最佳状态。
因此,在安装Nginx之前,通常需要先安装GCC编译器以及其他必要的依赖库。这样不仅可以确保Nginx能够成功编译和安装,还可以保证Nginx的性能和稳定性。
yum -y install gcc gcc-c++ autoconf automake make
2、安装 pcre
提供nginx支持重写功能
Perl库是一组用于支持Perl编程语言的库文件和模块。Perl是一种功能丰富的计算机程序语言,广泛用于各种任务,包括系统管理、Web开发、网络编程、GUI开发等。
Nginx安装Perl库的原因通常是为了支持特定的功能扩展或与Perl应用程序的交互。
pcre-deve是使用Perl开发的一个二次开发库。
yum -y install pcre pcre-devel
3、安装zlib
zlib 库提供了很多压缩和解压缩的方式,nginx 使用 zlib 对 http 包内容进行 gzip 压缩
Nginx需要安装zlib库主要是因为zlib提供了多种压缩和解压缩的方式,而Nginx使用zlib对HTTP包的内容进行gzip压缩。通过gzip压缩,Nginx可以有效地减少传输的数据量,降低网络带宽的消耗,并加速网页的加载速度。这对于提高网站的性能和用户体验非常重要。
另外,zlib库也是开源的,并且被广泛使用,因此与Nginx的集成非常顺畅。通过安装zlib库,Nginx可以利用zlib提供的压缩算法和高效的数据处理功能,实现对HTTP内容的实时压缩和传输。
yum -y install zlib zlib-devel make libtool
4、安装openssl
安全套接字层密码库,用于通信加密
Nginx需要安装OpenSSL库主要是因为它支持HTTPS协议,即通过在SSL/TLS协议上传输HTTP协议来提供加密通信。OpenSSL是一个强大的安全套接字层密码库,它包含了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议。
当Nginx配置为使用HTTPS时,它需要OpenSSL库来处理加密和解密操作,确保在客户端和服务器之间传输的数据是安全的。OpenSSL提供了丰富的应用程序和库函数,使得Nginx可以方便地使用SSL/TLS协议进行安全通信。
此外,OpenSSL还提供了证书管理功能,Nginx可以使用OpenSSL来加载和管理SSL证书和私钥,以确保安全的连接建立。
2 nginx 安装
手动创建用户和用户组
groupadd nginx
useradd nginx -g nginx -s /sbin/nologin -M
官网下载:
wget https://nginx.org/download/nginx-1.20.2.tar.gz
解压:
tar -zxvf nginx-1.20.2.tar.gz
编译目录:
cd nginx-1.20.2
# 检查平台安装环境
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --user=nginx --group=nginx
参数说明: –prefix=/usr/local/nginx
#编译安装目录 –user=nginx
#所属用户nginx –group=nginx
#所属组nginx –with-http_stub_status_module
#该模块提供nginx的基本状态信息 –with-http_ssl_module
# 支持HTTPS
编译源码并安装:
make # 编译
make install # 安装
nginx编译完成以后,修改nginx.conf文件
使用nginx用户登录:
user nginx nginx;
如果切换不了。就忽略这一步
3 ningx操作
启动服务:
/usr/local/nginx/sbin/nginx
如果不知道Nginx在哪里?可以使用下面命令:
whereis nginx
启动后,查看Nginx情况:
ps -ef | grep nginx
查看Nginx的版本号:
/usr/local/nginx/sbin/nginx -V
浏览器直接IP访问:
重启服务:
/usr/local/nginx/sbin/nginx -s reload
停止服务:
/usr/local/nginx/sbin/nginx -s stop
Nginx服务配置
目前Nginx都是通过命令执行的,在Nginx运行过程中,需要Nginx作为系统的服务运行。以systemctl命令运行服务。
配置服务文件:
vi /lib/systemd/system/nginx.service
配置信息:
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx reload
ExecStop=/usr/local/nginx/sbin/nginx quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
创建服务:
systemctl enable nginx.service
使用服务命令:
systemctl status nginx