【手把手】教你Nginx配置代理服务、负载均衡、https证书、rewrite重写

导读:本篇文章讲解 【手把手】教你Nginx配置代理服务、负载均衡、https证书、rewrite重写,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

0、环境准备

本文中的所有操作基于CentOS8 + Nginx1.20.2,先准备好3台已经安装好Nginx环境的CentOS虚拟机(Nginx在CentOS中的安装可参考上一篇文章:【软件安装】Nginx在Linux系统中的安装_FeenixOne的博客-CSDN博客1、从官网下载Nginx压缩包到本地cd /usr/local/mkdir sourcecd source/注:因为本人习惯将下载的源码压缩包存在在本地 /usr/local/source/ 文件夹中,这边以此作为示范,具体的存放路径根据个人习惯各自存放即可。wget https://nginx.org/download/nginx-1.20.2.tar.gz2、将下载好的压缩包进行解压tar -zxvf nginx-1.20.2.tar.gz3、进入解压后的文件【手把手】教你Nginx配置代理服务、负载均衡、https证书、rewrite重写https://blog.csdn.net/FeenixOne/article/details/124733648),成功安装后将3台Nginx服务都启动,并确保可以正常访问即可。

1、使用Nginx配置代理服务

进入到Nginx的配置文件夹中:cd /usr/local/nginx/conf/

编辑Nginx配置文件:vim nginx.conf

【手把手】教你Nginx配置代理服务、负载均衡、https证书、rewrite重写

location / {} 中的url就是Nginx要代理的服务地址(域名、IP地址皆可)

重启Nginx服务:systemctl restart nginx.service

此时再访问Nginx服务,就会自动转到代理的服务网址。

2、使用Nginx配置负载均衡

编辑Nginx配置文件:vim nginx.conf

【手把手】教你Nginx配置代理服务、负载均衡、https证书、rewrite重写

在upstream [name] {} 中写入需要负载均衡的服务,然后在location / {} 中将需要负载均衡的[name]写入,两个[name]需要一致。

重启Nginx服务:systemctl restart nginx.service

【手把手】教你Nginx配置代理服务、负载均衡、https证书、rewrite重写【手把手】教你Nginx配置代理服务、负载均衡、https证书、rewrite重写

在Nginx中默认的负载策略是轮巡,多个服务雨露均沾,也可以使用权重来指定均衡的策略

编辑Nginx配置文件:vim nginx.conf

【手把手】教你Nginx配置代理服务、负载均衡、https证书、rewrite重写

重启Nginx服务:systemctl restart nginx.service

差不多就是每6个访问,5个去到152,1个去到151,当然这不是绝对的数据。

【手把手】教你Nginx配置代理服务、负载均衡、https证书、rewrite重写

backup:其它所有的非backup服务down或者忙的时候,请求backup机器;

down:当前的服务不参与负载。

3、https证书

① 先申请一个自己的域名,推荐去阿里云上面买一个自己喜欢的,几十块钱玩一年,便宜好用。

我这边使用【feenix.cn】作为接下来演示使用的域名;

② 免费的提供https证书的网站,比如腾讯云的ssl就可以;

③ 主机服务使用【192.168.159.151】作为教程演示。 

上述三样东西一样不可确实,当准备齐全了域名、证书申请网站、主机服务之后,开始配置!

配置域名解析,将 feenix.cn 域名解析到 192.168.159.151 主机上

【手把手】教你Nginx配置代理服务、负载均衡、https证书、rewrite重写

确保 feenix.cn 访问到 192.168.159.151

【手把手】教你Nginx配置代理服务、负载均衡、https证书、rewrite重写

去腾讯云SSL购买一个免费的证书

【手把手】教你Nginx配置代理服务、负载均衡、https证书、rewrite重写【手把手】教你Nginx配置代理服务、负载均衡、https证书、rewrite重写

将购买成功的证书绑定到需要的域名上

【手把手】教你Nginx配置代理服务、负载均衡、https证书、rewrite重写【手把手】教你Nginx配置代理服务、负载均衡、https证书、rewrite重写【手把手】教你Nginx配置代理服务、负载均衡、https证书、rewrite重写【手把手】教你Nginx配置代理服务、负载均衡、https证书、rewrite重写【手把手】教你Nginx配置代理服务、负载均衡、https证书、rewrite重写【手把手】教你Nginx配置代理服务、负载均衡、https证书、rewrite重写【手把手】教你Nginx配置代理服务、负载均衡、https证书、rewrite重写

将证书下载到本地,解压后把文件夹中的文件复制到Nginx目录下

cd /usr/local/nginx/conf/

【手把手】教你Nginx配置代理服务、负载均衡、https证书、rewrite重写

编辑Nginx配置文件:vim nginx.conf

【手把手】教你Nginx配置代理服务、负载均衡、https证书、rewrite重写

重启Nginx服务:systemctl restart nginx.service

【手把手】教你Nginx配置代理服务、负载均衡、https证书、rewrite重写

原因也很简单,Nginx缺少http_ssl_module模块,编译安装的时候带上–with-http_ssl_module配置就行了,但是现在的情况是Nginx已经安装过了,需要重新添加进去。

进入Nginx目录中,查看Nginx原有的模块:

cd /usr/local/nginx/sbin/

nginx -V

【手把手】教你Nginx配置代理服务、负载均衡、https证书、rewrite重写

找到对应的configure参数:–prefix=/usr/local/nginx –with-http_stub_status_module

进入到Nginx源码包中:cd /usr/local/source/nginx-1.20.2/

执行编译:./configure –prefix=/usr/local/nginx –with-http_stub_status_module –with-http_ssl_module

【手把手】教你Nginx配置代理服务、负载均衡、https证书、rewrite重写

提示缺失OpenSSL库,执行:yum -y install openssl openssl-devel

安装完成后,再次执行模块安装

【手把手】教你Nginx配置代理服务、负载均衡、https证书、rewrite重写

make

【手把手】教你Nginx配置代理服务、负载均衡、https证书、rewrite重写

关闭Nginx服务:systemctl stop nginx.service 

然后备份原有已安装好的Nginx:cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

【手把手】教你Nginx配置代理服务、负载均衡、https证书、rewrite重写

然后将刚刚编译好的Nginx覆盖掉原有的Nginx:cp ./objs/nginx /usr/local/nginx/sbin/

【手把手】教你Nginx配置代理服务、负载均衡、https证书、rewrite重写

重新启动Nginx:systemctl start nginx.service,访问feenix.cn

4、rewrites重写

rewrites是实现url重写的关键字,根据正则表达时部分内容,重定向到replacement,结尾是flag标记。

rewrites          <regex>          <replacement>          [flag]

关键字               正则                  替代内容            flag标记

关键字:其中关键字error_log不能改变

正则:perl兼容正则表达式语句进行规则匹配

替代内容:将正则匹配的内容替换成replacment

flag标记:rewrites支持的flag标记

rewrites参数的标签段位置:server、location、if

flag标记说明:

last  #本条规则匹配完成后,继续向下匹配新的location URI规则

break #本条规则匹配完既终止,不在匹配后面的任何规则

redirect #返回302临时重定向,浏览器地址栏会显示跳转后的URL地址

permanent #返回301永久重定向,浏览器地址栏会显示跳转后的URL地址

rewrites  ^/account.login.html /account/login  last;

rewrites ^/account/(.+).html/account/list?pageNum=$1  last;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/111919.html

(0)
Java光头强的头像Java光头强

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!