Nginx 请求代理和 node请求代理
nginx:
server {
#SSL 默认访问端口号为 443
listen 443 ssl;
server_name gpt.xutongbao.top;
ssl_certificate /temp/ssl/gpt.xutongbao.top/gpt.xutongbao.top.crt; # nginx的ssl证书文件
ssl_certificate_key /temp/ssl/gpt.xutongbao.top/gpt.xutongbao.top.key; # nginx的ssl证书验证密码
#配置根目录
location / {
#root html;
root /temp/yuyingGpt;
index index.html index.htm;
add_header Content-Security-Policy upgrade-insecure-requests;
}
# 匹配cdn开头的请求,实际转发的请求去掉多余的cdn这三个字母
location ^~/cdn/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://hlzc-static.xutongbao.top/;
}
# 匹配api开头的请求,实际转发的请求保api这三个字母
location /api/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://yuying-api.xutongbao.top;
}
}
node:
const { createProxyMiddleware } = require('http-proxy-middleware')
module.exports = function (app) {
//通过代理解决跨域
app.use(
'/zlhx',
createProxyMiddleware({
//target: 'http://test-zhiliao.gongzuoshouji.cn',
target: 'http://api-zlhx.gongzuoshouji.cn',
changeOrigin: true,
})
)
//匹配api开头的请求,实际转发的请求保api这三个字母
app.use(
'/api',
createProxyMiddleware({
target: 'http://localhost:85',
changeOrigin: true,
})
)
//匹配sslCnd开头的请求,实际转发的请求去掉多余的sslCnd这六个字母
app.use(
'/sslCnd',
createProxyMiddleware({
target: 'http://cdn.xutongbao.top',
changeOrigin: true,
pathRewrite: {
"^/sslCnd": ""
}
})
)
}
一、什么是Nginx?
Nginx是一个高性能的HTTP和反向代理Web服务器,同时也提供IMAP/POP3/SMTP服务。Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3/SMTP)代理服务器。Nginx的特点是:占有内存少,并发能力强。
Nginx专门为性能优化而开发,性能是最重要的考量,非常注重效率,事实上Nginx的并发能力在同类型的网页服务器种表现较好,能够支持高达50000个并发连接响应数。
概念:反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。
反向代理,其实对于客户端来说,对代理是无感知的,因为客户端不需要任何配置就可以访问。
过程:反向代理时,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,将数据返回给客户端,此时反向代理服务器和目标服务器在外界看来就是一个服务器,暴露的是代理服务器,隐藏了真实服务器的IP地址。
参考链接: