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、进入解压后的文件https://blog.csdn.net/FeenixOne/article/details/124733648),成功安装后将3台Nginx服务都启动,并确保可以正常访问即可。
1、使用Nginx配置代理服务
进入到Nginx的配置文件夹中:cd /usr/local/nginx/conf/
编辑Nginx配置文件:vim nginx.conf
location / {} 中的url就是Nginx要代理的服务地址(域名、IP地址皆可)
重启Nginx服务:systemctl restart nginx.service
此时再访问Nginx服务,就会自动转到代理的服务网址。
2、使用Nginx配置负载均衡
编辑Nginx配置文件:vim nginx.conf
在upstream [name] {} 中写入需要负载均衡的服务,然后在location / {} 中将需要负载均衡的[name]写入,两个[name]需要一致。
重启Nginx服务:systemctl restart nginx.service
在Nginx中默认的负载策略是轮巡,多个服务雨露均沾,也可以使用权重来指定均衡的策略
编辑Nginx配置文件:vim nginx.conf
重启Nginx服务:systemctl restart nginx.service
差不多就是每6个访问,5个去到152,1个去到151,当然这不是绝对的数据。
backup:其它所有的非backup服务down或者忙的时候,请求backup机器;
down:当前的服务不参与负载。
3、https证书
① 先申请一个自己的域名,推荐去阿里云上面买一个自己喜欢的,几十块钱玩一年,便宜好用。
我这边使用【feenix.cn】作为接下来演示使用的域名;
② 免费的提供https证书的网站,比如腾讯云的ssl就可以;
③ 主机服务使用【192.168.159.151】作为教程演示。
上述三样东西一样不可确实,当准备齐全了域名、证书申请网站、主机服务之后,开始配置!
配置域名解析,将 feenix.cn 域名解析到 192.168.159.151 主机上
确保 feenix.cn 访问到 192.168.159.151
去腾讯云SSL购买一个免费的证书
将购买成功的证书绑定到需要的域名上
将证书下载到本地,解压后把文件夹中的文件复制到Nginx目录下
cd /usr/local/nginx/conf/
编辑Nginx配置文件:vim nginx.conf
重启Nginx服务:systemctl restart nginx.service
原因也很简单,Nginx缺少http_ssl_module模块,编译安装的时候带上–with-http_ssl_module配置就行了,但是现在的情况是Nginx已经安装过了,需要重新添加进去。
进入Nginx目录中,查看Nginx原有的模块:
cd /usr/local/nginx/sbin/
nginx -V
找到对应的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
提示缺失OpenSSL库,执行:yum -y install openssl openssl-devel
安装完成后,再次执行模块安装
make
关闭Nginx服务:systemctl stop nginx.service
然后备份原有已安装好的Nginx:cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
然后将刚刚编译好的Nginx覆盖掉原有的Nginx:cp ./objs/nginx /usr/local/nginx/sbin/
重新启动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