[学习笔记] Linux 环境下搭建基于Ngnix的反向代理服务

本文介绍了如何为预发布环境配置Nginx反向代理服务,以支持HTTPS和WSS通信协议。首先,对域名进行了规划和解析,然后详细阐述了如何在Nginx中配置SSL证书,以及针对不同业务服务的路由设置。此外,还涉及到七牛云对象存储服务的配置,并提供了测试步骤来验证配置是否成功。

之前为了方便同事测试微信小程序,搭建了基于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. 配置业务服务

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

    # 服务器本地路由配置规则
    server {
        listen       {监听的端口号};
        server_name  _;  # 可省略不填
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;


        #具体业务的路由:

        #根目录路由
        location / {
            proxy_pass        http://127.0.0.1:{你的服务端口号}/;
            proxy_http_version 1.1;
        }     

        #其他路由(已省略):
        #...
    }  

示例

后端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,添加如下内容:

    # 二级域名转发的路由配置规则
    server {
        listen       443 ssl http2;
        server_name  {二级域名地址};
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        ssl_certificate "{pem文件路径}";
        ssl_certificate_key "{key文件路径}";
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  10m;
        ssl_ciphers PROFILE=SYSTEM;
        ssl_prefer_server_ciphers on;

        #具体业务的路由:

        #根目录路由
        location / {
            proxy_pass         {你的后端服务地址};
            proxy_http_version 1.1;
        }     

        #其他路由(已省略):
        #...
    }  

示例

后端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/ 

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

至此配置完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林晓lx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值