[学习笔记] Linux 环境下搭建基于Ngnix的反向代理服务
之前为了方便同事测试微信小程序,搭建了基于CentOS的预发布环境,.Net5 程序也已经部署好在上面,在公网上可以通过http协议的临时域名(jevonsflash.xxx.net)访问到后台Api。
然而小程序的正式线上版本,只可以跟指定的域名进行网络通信,且域名只支持 https,wss通信协议,因此需要配置预发布环境的反向代理服务。
访问路由如下:
一. 准备工作
1. 域名规划
首先确定网站的业务都有哪些子系统,各个子系统可以划分出不同的域名前缀,组成接口地址或者页面地址,以顶级域名matoapp.net为例常见的划分方式有:
www.matoapp.net:主站网址,www 是万维网 World Wide Web的简称;
m.matoapp.net: 移动端站点,m是mobile的缩写;
res.matoapp.net: 静态资源地址,用于存放网站icon,banner图片等静态资源,res是resources的缩写;
api.matoapp.net: 后端接口地址。
其他业务:
im.matoapp.net: 即时通信服务地址,im为即时通信Instant Messaging;
blog.matoapp.net: 博客站点地址;
mail.matoapp.net:通常用于解析邮箱服务器。
等等..
2. 配置域名解析
在域名提供商的管理页面中需要配置主机记录值,以阿里云为例
将各前缀填写到主机记录值并解析到反向代理服务器的公网ip地址:
填写规则:
@:直接解析主域名 aliyun.com。
*:泛解析,匹配其他所有域名 *.aliyun.com。
二级域名:如:abc.aliyun.com,填写abc。
二. 配置Nginx
1. 配置SSL证书
进入阿里云数字证书管理服务/SSL 证书
找到对应的Nginx- 下载
下载后解压缩得到这两个
2. 配置业务服务
后端Api:
IM即时通信服务:
其他业务服务配置省略了,根据地址配置server_name字段,根据各业务请求要求配置location字段。
然后运行重新加载命令
3. 配置反向代理服务
反向代理服务器中建立目录/etc/pki/nginx/以存放ssl证书 ,并赋予读写权限
将解压后的两个文件上传至/etc/pki/nginx/目录
打开配置文件:etc/nginx/nginx.conf,添加如下内容:
后端Api地址转发:
IM即时通信服务地址转发:
其他反向代理服务配置省略了,根据地址配置server_name字段,根据各业务请求要求配置location字段。
proxy_pass字段为业务服务器地址
然后运行重新加载命令
4. 配置七牛云对象存储服务
在阿里云域名解析中,添加一条记录类型为CNAME的值,指向七牛云对象存储的实例地址
再配置七牛云ssl访问证书
三. 测试
在任意终端浏览器测试服务是否畅通:
https://api.matoapp.net/
https://im.matoapp.net/
https://res.matoapp.net/
可以看到请求已经转发到各业务服务器中,并返回正确的数据了
至此配置完成
[学习笔记] Linux 环境下搭建基于Ngnix的反向代理服务