​之前为了方便同事测试微信小程序,搭建了基于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字段。

然后运行重新加载命令

nginx -s reload

3. 配置反向代理服务

反向代理服务器中建立目录/etc/pki/nginx/以存放ssl证书 ,并赋予读写权限

sudo mkdir /etc/pki/nginx/
sudp chmod 777 /etc/pki/nginx/

将解压后的两个文件上传至/etc/pki/nginx/目录

打开配置文件:etc/nginx/nginx.conf,添加如下内容:

后端Api地址转发:

IM即时通信服务地址转发:

其他反向代理服务配置省略了,根据地址配置server_name字段,根据各业务请求要求配置location字段。

proxy_pass字段为业务服务器地址

然后运行重新加载命令

nginx -s reload

4. 配置七牛云对象存储服务

在阿里云域名解析中,添加一条记录类型为CNAME的值,指向七牛云对象存储的实例地址

再配置七牛云ssl访问证书

三. 测试

在任意终端浏览器测试服务是否畅通:

https://api.matoapp.net/

https://im.matoapp.net/

https://res.matoapp.net/

可以看到请求已经转发到各业务服务器中,并返回正确的数据了

至此配置完成

[学习笔记] Linux 环境下搭建基于Ngnix的反向代理服务的更多相关文章

  1. [学习笔记]Linux环境下部署 .Net5 程序

    ​公司的项目需要部署到一台公网的linux服务器,以便同事们测试小程序. 目标服务器是新搭建的CentOS 8虚拟机,以非docker的方式部署.现记录过程便于日后部署至项目甲方的服务器上,因为甲方的 ...

  2. 在Linux 环境下搭建 JDK 和 Tomcat

      在Linux 环境下搭建 JDK 和 Tomcat 参考地址:http://www.cnblogs.com/liulinghua90/p/4661424.html   [JDK安装] 1.首先下载 ...

  3. ​Linux环境下搭建禅道管理工具-包含软件资源

    ​Linux环境下搭建禅道管理工具 1:百度云盘下载: 禅道--链接: https://pan.baidu.com/s/1Stu7nOZVIPO5TnpJWjWtiQ 提取码:dnik CentOs操 ...

  4. linux环境下搭建环境发布web项目

    在公司真是学习了一下项目环境在linux下搭建和发布的过程,这是每个程序员都应该掌握的一个技能,将整理下为以后温习用,也乐于和为掌握这些技能的猿分享: 这里主要分为5部分:1.安装jdk,并配置环境变 ...

  5. Linux环境下搭建Tomcat+mysql+jdk

    Linux环境 1.下载并安装一个VMware workstation, 这个是虚拟机的平台(自行度娘下载~),虚拟机是在后面要在里面搭建Linux系统. 2.下载一个centos安装包,linux版 ...

  6. 在Linux环境下搭建Tomcat+mysql+jdk环境

    按照下面的步骤一步一步来搭建tomcat+jdk+mysql环境.   [Linux环境]------我搭建的是64位centos版本的linux系统 1.下载并安装一个VMware workstat ...

  7. Windows和Linux环境下搭建SVN服务器

    --------------------------Windows下搭建SVN服务器----------------------------- 一.安装SVN服务端 软件包Setup-Subversi ...

  8. linux环境下搭建MySQL

    linux下搭建mysql的方式很多,网上也详解了很多种搭建方式,有直接yum的.有rpm的..总之,“坑”是层出不穷,有相关文件依赖性.权限.GPG keys等等. 本人也在今天搭建了一下.是出“坑 ...

  9. Ubuntu16.04环境下搭建基于三台主机的mysql galera cluster集群(实测有效)

    (注意: (1)文中红色字体部分不一定需要操作 (2)由于word文档编辑的原因,实际操作时部分命令需要手动输入!!直接复制粘贴会提示错误!! ) 一  搭建环境: 1 Ubuntu16.04版本(系 ...

  10. Linux环境下搭建测试环境(LAMP详细说明)

    一.安装虚拟机与CentOS7 传送门:https://www.cnblogs.com/mrgavin/p/9372393.html 注意:以下安装,我都是用的root权限. 二.安装Apache1. ...

随机推荐

  1. NLP涉及技术原理和应用简单讲解【二】:paddle(分布式训练、AMP自动混合精度训练、模型量化、模型性能分析)

    参考链接: https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/06_distributed_training/cluster_q ...

  2. conda创建虚拟环境后文件夹中只有conda-meta文件夹,无法将环境添加到IDE中

    1.问题描述:anaconda的envs的其中一个环境目录下,没有python.exe文件,只有conda-meta和scripts 平时创建虚拟环境都是: conda create -n test ...

  3. C/C++ ShellCode 常用加密方式

    异或加密ShellCode: #include <stdio.h> #include <Windows.h> unsigned char buf[] = "\xba\ ...

  4. docker中的mysql时区修改

    永久修改 进入容器 docker exec -it mysql5.7 bash 查看当前时区 date -R 修改时区 cp /usr/share/zoneinfo/PRC /etc/localtim ...

  5. CF526F Pudding Monsters 题解

    题目链接:CF 或者 洛谷 析合树真是连续段问题的降智神器 先看下题目的一些特殊性,每行每列恰好有一个棋子.考虑特殊性,\(n \times n\) 的棋盘,那么就该判断是否有 \(n\) 个棋子,容 ...

  6. 戴尔R7920工作站利用PVE开启vGPU,实现工作站虚拟化(ShareStation)

    介绍 本文介绍了使用Proxmox VE(PVE) + DoraCloud,将一台Dell R7920图形工作站(配置有NVIDIA RTX A6000显卡)实现工作站虚拟化.可以满足多个设计用户同时 ...

  7. CH9140,CH9141,CH9143异同点

    9140:是一款蓝牙转串口芯片,芯片支持蓝牙主从一体模式或从机模式,支持蓝牙 BLE4.2.串口波特率最高 1Mbps,支持 MODEM 联络信号,蓝牙主从模式可以自动连接或绑定. 智能配对功能 当 ...

  8. Java-将Oracle中某个表的数据导出成数据文件

    在做数据开发或者ETL工作中,经常会遇到需要在客户端将Oracle数据库中的某些表的数据导出,提供给其他人员使用的情况.      下面介绍我之前实施的一种方法:(该方法不是最好的办法,但是可以勉强使 ...

  9. Linux--如何查看磁盘的IO(top、iostat)

    问题背景: 在性能测试时,虽然测试出了结果,但是我们并不知道瓶颈是源端,还是目标端.例如我做上传和下载性能验证,从Linux服务器上向OSS集群上传和下载文件,虽然测试出了速率,但是并不知道上传是否存 ...

  10. MySQL优化技术系列-谓词下推(pushdown)

    谓词下推 将外层查询块的 WHERE 子句中的谓词移入所包含的较低层查询块(例如视图),从而能够提早进行数据过滤以及有可能更好地利用索引. 这在分区数据库环境中甚至更为重要,其原因在于,提早进行过滤有 ...