centos 7.6 安装 nginx 1.24.0 介绍、安装、配置、使用

1 篇文章 0 订阅

1、nginx介绍

Nginx(发音为"engine-x")是一个开源的高性能、高可靠性的HTTP服务器和反向代理服务器,也可以用作邮件代理服务器。它最初由Igor Sysoev于2004年创建,现在由Nginx公司和开源社区共同维护。

以下是Nginx的一些主要特点和用途:

高性能: Nginx以其出色的性能而闻名,可以处理大量并发连接,高效地提供静态内容,以及有效地处理动态内容。

反向代理: Nginx经常用作反向代理服务器,将客户端的请求转发到后端服务器,然后将响应返回给客户端。这有助于提高性能、负载均衡和保护后端服务器免受恶意攻击。

负载均衡: Nginx支持负载均衡,可以分发客户端请求到多个后端服务器,以确保请求得到平衡地处理,提高整体系统性能和可用性。

静态文件服务: Nginx优秀地处理静态文件,如HTML、CSS、JavaScript和图像等。它可以作为高效的静态文件服务器,减轻后端应用服务器的负载。

SSL/TLS支持: Nginx提供了强大的SSL/TLS支持,可以用于安全地传输数据,保护网站和应用程序的通信。

虚拟主机: Nginx允许配置多个虚拟主机,使得可以在同一台服务器上托管多个域名,提供灵活的配置选项。

模块化设计: Nginx的设计采用模块化结构,可以通过加载不同的模块来扩展其功能。这使得用户可以根据需要选择性地启用或禁用特定功能。

日志记录: Nginx提供丰富的日志记录功能,记录访问日志、错误日志等,有助于进行故障排除和性能分析。

开源和免费: Nginx采用BSD许可证,是免费且开源的软件。这使得它成为许多网站和应用程序架构的首选。

总体而言,Nginx是一个轻量级、高性能、可扩展和灵活配置的Web服务器,适用于多种场景,从简单的静态网站服务到复杂的负载均衡和反向代理配置。

2、nginx安装

官方安装文档 https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-open-source/

2.1、下载nginx 稳定版 or 主线版

追求稳定的生产环境 要选择 稳定版。
追求最新功能并能忍受几个bug 选择主线版本。

在这里插入图片描述

本文中选择稳定版本 并从源码编译安装 下载源码安装包
官方下载链接: https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-open-source/#downloading-the-sources

在这里插入图片描述

官方下载链接: https://nginx.org/download/nginx-1.24.0.tar.gz

2.2、安装nginx

本文行稳定版源码包编译安装nginx

2.2.1、安装依赖包

在从源代码编译NGINX Open Source之前,您需要为其依赖项安装库

2.2.1.1、安装PCRE – Supports regular expressions. Required by the NGINX Core and Rewrite modules.

官方下载链接 链接: github.com/PCRE2Project/pcre2/releases/download/pcre2-10.42/pcre2-10.42.tar.gz

cd /path/to/pcre2-10.42.tar.gz
tar -zxvf pcre2-10.42.tar.gz
cd pcre2-10.42
./configure  --prefix=/usr/local/pcre2-10.42
make
make install
2.2.1.2、安装zlib – Supports header compression. Required by the NGINX Gzip module.

访问https://zlib.net/ 点击下图按钮下载zlib-1.3.1.tar.gz

在这里插入图片描述

虽然nginx安装文档建议安装zlib-1.2.13 但是下载链接已经不可用了 只能访问zlib官网下载 zlib官网只提供了最新版zlib-1.3.1 因此安装zlib-1.3.1

在这里插入图片描述

cd /path/to/zlib-1.3.1.tar.gz
tar -zxvf zlib-1.3.1.tar.gz
cd zlib-1.3.1
./configure --prefix=/usr/local/zlib-1.3.1
make
make install
2.2.1.3、安装OpenSSL – Supports the HTTPS protocol. Required by the NGINX SSL module and others.

nginx官方文档建议安装openssl-1.1.1v
在这里插入图片描述

查看centos 7.6 已经有openssl了 版本是OpenSSL 1.0.2k-fips

在这里插入图片描述

虽然centos已经有了openssl 但是不一定满足要求 为了安装nginx成功 按照nginx官方建议去安装openssl-1.1.1v
官方下载链接: http://www.openssl.org/source/openssl-1.1.1v.tar.gz

cd /path/to/openssl-1.1.1v.tar.gz
tar -zxvf openssl-1.1.1v.tar.gz
cd openssl-1.1.1v
./Configure linux-x86_64 --prefix=/usr/local/openssl-1.1.1v
make
make install

2.2.2、编译安装nginx-1.24.0

cd /path/to/nginx-1.24.0.tar.gz
tar -zxvf nginx-1.24.0.tar.gz
cd nginx-1.24.0
./configure --prefix=/usr/local/nginx  --sbin-path=/usr/local/nginx/nginx  --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-pcre=/usr/local/pcre2-10.42/ --with-zlib=/usr/local/zlib-1.3.1/ --with-http_ssl_module --with-openssl=/usr/local/openssl-1.1.1v/ --with-stream --with-mail=dynamic
make
make install

make报错 make[1]: *** [/usr/local/pcre2-10.42//Makefile] Error 127

在这里插入图片描述

这个make报错的原因是是由于高版本的nginx需要使用pcre原文件路径。
解压pcre2-10.42.tar.gz 本文章中解压后位置是/root/package/nginx/dependencies/pcre2-10.42
那么在nginx configure的时候 需要指定pcre路径是/root/package/nginx/dependencies/pcre2-10.42

先在nginx解压后的文件夹下 执行make clean 清理掉刚才configure命令的配置
然后更新configure命令如下 再次编译安装

./configure --prefix=/usr/local/nginx  --sbin-path=/usr/local/nginx/nginx  --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-pcre=/root/package/nginx/dependencies/pcre2-10.42 --with-zlib=/usr/local/zlib-1.3.1/ --with-http_ssl_module --with-openssl=/usr/local/openssl-1.1.1v/ --with-stream --with-mail=dynamic
make
make install

再次执行configure 报错 make[1]: *** [/usr/local/openssl-1.1.1v//.openssl/include/openssl/ssl.h] Error 127 这个错误意思是configure指定的openssl目录下没有ssl.h 文件 这个ssl.h 头文件是在openssl-1.1.1v.tar.gz解压后的原文件目录中

在这里插入图片描述

因此更新configure命令使得 ----with-openssl=/root/package/nginx/dependencies/openssl-1.1.1v 是openssl-1.1.1v.tar.gz解压后的原文件目录

先在nginx解压后的文件夹下 执行make clean 清理掉刚才configure命令的配置
然后更新configure命令如下 再次编译安装

./configure --prefix=/usr/local/nginx  --sbin-path=/usr/local/nginx/nginx  --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-pcre=/root/package/nginx/dependencies/pcre2-10.42 --with-zlib=/usr/local/zlib-1.3.1/ --with-http_ssl_module --with-openssl=/root/package/nginx/dependencies/openssl-1.1.1v --with-stream --with-mail=dynamic
make
make install

configure成功

在这里插入图片描述

make 报错 make[1]: *** [/usr/local/zlib-1.3.1//libz.a] Error 2 这个错误意思是configure指定的zlib目录下没有libz.a 文件 这个libz.a文件是在zlib-1.3.1.tar.gz解压后的原文件目录中

在这里插入图片描述
因此更新configure命令使得 --with-zlib=/root/package/nginx/dependencies/zlib-1.3.1 是zlib-1.3.1.tar.gz解压后的原文件目录

先在nginx解压后的文件夹下 执行make clean 清理掉刚才configure命令的配置
然后更新configure命令如下 再次编译安装

./configure --prefix=/usr/local/nginx  --sbin-path=/usr/local/nginx/nginx  --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-pcre=/root/package/nginx/dependencies/pcre2-10.42 --with-zlib=/root/package/nginx/dependencies/zlib-1.3.1 --with-http_ssl_module --with-openssl=/root/package/nginx/dependencies/openssl-1.1.1v --with-stream --with-mail=dynamic
make
make install

configure成功

在这里插入图片描述

make成功

在这里插入图片描述

make install 成功

在这里插入图片描述

在这里插入图片描述
查看安装目录 /usr/local/nginx

在这里插入图片描述
其中html目录 是nginx的web根目录

好家伙 至此终于安装nginx成功了 折腾这么久的原因在于 nginx的3个依赖包 pcre2-10.42.tar.gz 、zlib-1.3.1.tar.gz 、openssl-1.1.1v.tar.gz ,在nginx的configure配置中 指定的 都是 解压后的原目录 并不是这3个依赖包的安装目录 既然如此 nginx官方安装文档中为什么要让安装这3个依赖包呢,不理解,在次做个记录吧。

以后源码编译安装其他软件包时要注意这一点:configure配置中 指定的 是 解压后的原目录 还是安装后的安装目录。

20240516更新 针对这个疑问 实验不编译安装nginx的3个依赖包 pcre2-10.42.tar.gz 、zlib-1.3.1.tar.gz 、openssl-1.1.1v.tar.gz ,直接解压完这3个依赖包,然后在nginx configure命令中 执行这3个解压后的目录。

./configure --prefix=/usr/local/nginx  --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid--with-pcre=/root/package/nginx/pcre2-10.42 --with-zlib=/root/package/nginx/zlib-1.3.1 --with-http_ssl_module --with-openssl=/root/package/nginx/openssl-1.1.1v --with-stream --with-mail=dynamic

报错如下 :需要安装PCRE library到系统上,所以还是需要编译安装这3个依赖包的,只不过安装这3个依赖包后,在nginx configure命令中还是需要执行这3个依赖包解压后的目录,而不是执行这3个依赖包在系统上的安装目录。

在这里插入图片描述

3、nginx启动停止、配置

nginx启动
因为nginx默认端口是80 和apache http server冲突了,正巧本机上同时运行了apache http server。因此需要修改nginx默认端口为81

编辑/usr/local/nginx/nginx.conf

vi /usr/local/nginx/nginx.conf

把 listen 80 改为 listen 8081
更改前

在这里插入图片描述

更改后

在这里插入图片描述

查看nginx版本

在这里插入图片描述

测试配置文件是否正确

在这里插入图片描述

然后启动nginx

nohup /usr/local/nginx/nginx -c /usr/local/nginx/nginx.conf &

在这里插入图片描述

访问http://nginx-server-ip:8081

在这里插入图片描述

这个页面就是 nginx web根目录下的这个index.html文件

在这里插入图片描述

4、nginx配置ssl

  • 14
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值