前言
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架构中不可或缺的一部分。
一、安装nginx准备前工作
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 install gcc-c++
2.安装perl库
Perl库是一组用于支持Perl编程语言的库文件和模块。Perl是一种功能丰富的计算机程序语言,广泛用于各种任务,包括系统管理、Web开发、网络编程、GUI开发等。
Nginx安装Perl库的原因通常是为了支持特定的功能扩展或与Perl应用程序的交互。
pcre-deve是使用Perl开发的一个二次开发库。
yum install -y pcre pcre-deve
3.zlib安装
Nginx需要安装zlib库主要是因为zlib提供了多种压缩和解压缩的方式,而Nginx使用zlib对HTTP包的内容进行gzip压缩。通过gzip压缩,Nginx可以有效地减少传输的数据量,降低网络带宽的消耗,并加速网页的加载速度。这对于提高网站的性能和用户体验非常重要。
另外,zlib库也是开源的,并且被广泛使用,因此与Nginx的集成非常顺畅。通过安装zlib库,Nginx可以利用zlib提供的压缩算法和高效的数据处理功能,实现对HTTP内容的实时压缩和传输。
yum install -y zlib zlib-devel
4.openssl安装
Nginx需要安装OpenSSL库主要是因为它支持HTTPS协议,即通过在SSL/TLS协议上传输HTTP协议来提供加密通信。OpenSSL是一个强大的安全套接字层密码库,它包含了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议。
当Nginx配置为使用HTTPS时,它需要OpenSSL库来处理加密和解密操作,确保在客户端和服务器之间传输的数据是安全的。OpenSSL提供了丰富的应用程序和库函数,使得Nginx可以方便地使用SSL/TLS协议进行安全通信。
此外,OpenSSL还提供了证书管理功能,Nginx可以使用OpenSSL来加载和管理SSL证书和私钥,以确保安全的连接建立。
yum install -y openssl openssl-devel
二、nginx安装测试
1.搜索nginx网站,查看版本
2.下载nginx(1.25.4)
wget https://nginx.org/download/nginx-1.25.4.tar.gz
3.解压进入nginx目录
tar -xzvf nginx-1.25.4.tar.gz
ls
cd nginx-1.23.4/
4.准备编译环境,编译安装
./configure 预编译,主要用于检测系统基准环境库是否满足,生成makefile文件
--prefix=/usr/local/nginx 路径 安装位置 --user= 用户名 --group=用户组 其他就是功能参数--with-http ssl module 自定义的安装模块
make :编译
make install :安装
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --user=nginx --group=nginx
make
make install
(提示有一个日志错误,不过没什么影响)
5.搜索,进入nginx,然后启动
whereis nginx
cd /usr/local/nginx
ls
cd /usr/local/nginx/sbin
./nginx
6.登入127.0.0.1测试是否成功
三、编写systemd单元文件管理nginx服务
1.进入/etc/systemd/system或/usr/lib/systemd/system目录下,创建一个nginx.service文本文件
cd /etc/systemd/system
touch nginx.service
2.编写nginx.service文本文件内容
vim nginx.service
[Unit]
Description=nginx service #描述服务名称
[Service]
ExecStart=/usr/local/ngix/sbin/nginx #指定服务启动命令路径
ExecReload=/usr/lcoal/ngix/sbin/nginx -s reload #指定服务重启命令路径
ExecStop=/usr/local/ngix/sbin/nginx -s quit #指定服务停止命令路径
PrivateTmp=True #服务运行时分配独立的临时空间
Type=forking #服务运行类型为后台运行
[Install]
WantedBy=multi-user.target
3.重载配置,命令测试
systemctl daemon-reload
systemctl stop nginx.service
systemctl start nginx.service
systemctl enable nginx.service
systemctl daemon-reload(重载配置)
systemctl stop nginx.service(停止服务)
systemctl start nginx.service(启动服务)
systemctl enable nginx.service(随机启动)
参考博客:http://t.csdnimg.cn/c97Ae