在web服务器代理子域名,也就是在二级域前加的一个三级域标签
作为API接口我就设为api如:
server {
listen 443 ssl http2;
server_name api.主域名; //主域名=二级域.顶级域
…
}
在主站点配置下代理API请求到后端
location /api/ {
proxy_pass http://127.0.0.1:3000;
…
}
在后端服务器如在Express中,定义路由如:
app.get(‘/api/*’, (req, res) => {
// 处理逻辑
});
启动服务器监听后端端口3000
前端通过URL(也就是API地址)发起请求,后端服务器接收到请求后,会根据请求的URL和方法匹配预先定义的路由,匹配到路由后,会执行对应的函数,然后返回响应,具体来说:用户操作触发,前端构造请求,浏览器发送请求,DNS解析,建立TCP连接,发送HTTP请求,服务器处理,服务器响应,浏览器接收响应,前端处理数据,更新UI。
在Nginx中配置代理
server {
listen 443 ssl http2;
server_name oss.主域名;
…
location / {
# 代理到Bucket域名(内网或外网)
proxy_pass https://bucket-name.oss-cn-region.aliyuncs.com; //此为外网域名,可在oss控制台查看
proxy_http_version 1.1;
proxy_set_header Connection “”;
# Host头必须设置为Bucket域名(内网或外网)
proxy_set_header Host "bucket-name.oss-cn-region.aliyuncs.com";
# 转发客户端IP
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
...
}
}
添加域名解析,
在oss控制台将Bucket设为公共读,或者