如何部署nginx-plus?

Nginx

1. 基础知识

1.1 软件简介


– NGINX Plus是建立在开源NGINX之上的软件负载均衡器、Web服务器和内容缓存
– NGINX Plus具有超越开源产品提供的独有企业级别功能
– NGINX Plus可代替硬件负载均衡器

1.2 软件功能

– NGINX Plus支持会话持久性
– NGINX Plus支持API配置
– NGINX Plus支持动态运行状态检查
– NGINX Plus支持不受基础架构约束的扩展

1.3 软件的特点

1.3.1 负载均衡器


– 支持HTTP、TCP和UDP负载均衡器
– 支持第7层URL、Cookie等参数的请求路由
– 支持基于cookie的会话持久性*
– 支持对状态码和相应主题进行主动健康检查*
– 支持DNS的服务发现*
注:*表示NGINX Plus专有功能

1.3.2 内容缓存


– 支持缓存静态和动态的内容
– 支持通过微缓存提高动态内容的性能
– 支持后台重新验证并提高性能
– 支持覆盖和设置Cache-Control标题
– 支持使用清除缓存的API轻松管理缓存*

1.3.3 网络服务器


– 支持同时处理数十万客户
– 支持较低的内存用量(只占其他服务器的90%)
– 支持反向代理的多种协议(HTTP、gRPC、memcached、PHP-FPM、SCGI、uwsgi)
– 支持HTTP视频流(FLV、HDS、HLS、MP4)
– 支持HTTP/2服务器推送到支持的HTTP/2网关

1.3.4 安全控制


– 支持请求和链接限制
– 支持双栈RSA/ECC、SSL/TLS卸载
– 支持TLS 1.3
– 支持动态证书加载
– 支持基于IP地址的访问控制列表(ACL)
– 支持API和OpenID Connect单点登录(SSO)的JWT身份验证*
– 支持NGINX WAF动态模块*

1.3.5 动态模块


– 支持NGINX JavaScript模块在请求处理期间运行JavaScript代码
– 支持通过IP地址定位用户的GeoIP模块(需要MaxMind GeoIP数据库)
– 支持构建工具编译自己的自定义模块*
– 支持SSO模块(ForgeRock、IDF Connect、Ping Identity)*

1.3.6 监控方式


– 支持监控NGINX指标并使用NGINX Amplify验证配置
– 支持AppDynamics、Datadog和Dynatrace插件
– 支持超过90种独特指标的扩展状态
– 支持内置实时图形仪表板
– 支持JSON和HTML输出(可与自定义监视工具集成)*

1.3.7 高可用性(HA)*


– 支持active-active和active-passive模式
– 支持集群中NGINX Plus服务器之间的配置同步
– 支持状态共享(包括Sticky-Learn会话持久、速率限制和键值存储)
– 支持易于安装的内置脚本

1.3.8 Kubernetes入口控制器


– 支持通过SSL/TLS负载均衡
– 支持WebSocket和HTTP/2
– 支持请求转发到应用程序之前的URL重写
– 支持Prometheus出口监控
– 支持会话持久和监控检查*
– 支持JWT认证*

1.3.9 可编程


– 支持脚本和高级配置的NGINX JavaScrip他模块
– 支持Lua脚本语言
– 支持Ansible、Chef和Puppet集成
– 支持管理上游服务器、键值存储和实时指标的API*
– 支持动态重配置(无需重新加载进程)*

1.3.10 流媒体


– 支持实时流(RTMP、Apple HTTP实时流即HLS、基于HTTP的动态自适应流即DASH)
– 支持视频点播(Flash即flv、MP4)
– 支持自适应比特率VOD(HLS、Adobe HTTP动态流即HDS*)
– 支持MP4流的带宽控制*

2. 最佳实践

2.1 系统配置

2.1.1 系统基本的信息

OS = CentOS 7.7 x86_64
hostname = any.cmdschool.org
ip address = any

2.1.2 安装常用工具

yum install -y wget vim net-tools

2.1.3 升级系统到最新版本

yum update -y

2.2 准备工作

2.2.1 申请证书

请通过以下链接注册你的账号并申请试用(你将得到SSL证书和秘钥,详细请自行摸索,这里不累赘),
https://www.nginx.com/products/nginx/#tech-specs

2.2.2 备份旧的配置与日志

mkdir /backup
cp -a /etc/nginx/ /backup/nginx-config
cp -a /var/log/nginx/ /backup/nginx-log

2.2.3 部署证书

mkdir -p /etc/ssl/nginx
cp ~/nginx-repo.crt /etc/ssl/nginx/
cp ~/nginx-repo.key /etc/ssl/nginx/

注:请提前将下载的上传证书到家目录

2.2.4 部署Mozilla基金CA证书包

yum install -y ca-certificates

2.2.5 部署yum源

wget -P /etc/yum.repos.d https://cs.nginx.com/static/files/nginx-plus-7.4.repo

2.3 部署nginx-plus

2.3.1 安装软件包

yum install -y nginx-plus

2.3.2 确认软件包部署

nginx -v

可见如下显示,

nginx version: nginx/1.17.3 (nginx-plus-r19)

2.3.3 启动服务并配置自启动

systemctl start nginx.service
systemctl enable nginx.service

2.3.4 配置的防火墙

firewall-cmd --permanent --add-service http --add-service https
firewall-cmd --reload
firewall-cmd --list-all

2.4 其他服务控制命令

2.4.1 正常关机

nginx -s quit

2.4.2 重载配置

nginx -s reload

2.4.3 重开日志文件

nginx -s reopen

2.4.4 立刻关闭

nginx -s stop

参阅文档
====================

nginx-plus的安装文档
———————
https://www.nginx.com/products/nginx/#tech-specs

nginx-plus的服务控制
———————
https://nginx.org/en/docs/control.html?_ga=2.227418013.1478615320.1571272204-1953014643.1569045545
https://docs.nginx.com/nginx/admin-guide/basic-functionality/runtime-control/

Mozilla基金CA证书包
—————-
https://fedoraproject.org/wiki/CA-Certificates

其他文档
—————–
https://docs.nginx.com/nginx/admin-guide/high-availability/zone_sync/

http://nginx.org/en/docs/stream/ngx_stream_zone_sync_module.html#zone_sync

没有评论

发表评论

Nginx
如何拒绝外网用户访问特定URL?

1 前言 一个问题,一篇文章,一出故事。 笔者有一个认证接口需要拒绝intetnet的用户访问同时允 …

Nginx
如何实现私网地址重写策略?

1 前言 一个问题,一篇文章,一出故事。 笔者的nextcloud需要透过反向代理实现企业外部2FA …