使用haproxy的http请求到https请求
http request to https request using haproxy
我有一种情况,我想使用 haproxy 将所有 http 请求重定向到 https 请求。比方说,我有一个安装了 haproxy 的服务器 x 和一个实际服务为 运行(使用 ssl)的服务器 y。现在,我希望 haproxy 接受 http 请求并通过 https 将其转发到后端服务器。
有点像这样:
用户<--(http)--> haproxy <--(https)-->实际服务
到目前为止我所做的是,前端在端口 8080 中接受 http 连接并将其发送到其默认后端,在后端我已经预先设置 "ssl verify none".
使用它,我可以从 http 加载页面,但每当我提交请求(比如登录)时,响应都来自 http url,但没有任何效果。
我完全不知道这是否可能。
如果我需要提供更多详细信息,请告诉我。
如能对此有所了解,将不胜感激。
提前致谢。
你的配置是什么?
您可能需要像这样指定端口
server httpsserver 10.0.0.80:443 ssl verify none
一个简单的 https 服务器:
var express = require('express');
var https = require('https');
var fs = require('fs');
var bodyParser = require('body-parser');
var options = {
key: fs.readFileSync('./client-key.pem'),
cert: fs.readFileSync('./client-cert.pem')
};
var app = express();
app.use(bodyParser.json());
app.post('/post', function (req, res) {
res.send(req.body);
});
https.createServer(options, app).listen(443);
POST:
curl -k -X POST https://127.0.0.1/post -d '{"a":"b"}' -H "Content-Type: application/json"
{"a":"b"}
HAProxy 配置:
global
debug
defaults
retries 3
timeout client 300s
timeout connect 300s
timeout server 300s
frontend web
bind *:8080
default_backend app
backend app
balance roundrobin
server httpsserver 127.0.0.1:443 ssl verify none
POST 对抗 HAProxy
curl -k -X POST http://127.0.0.1:8080/post -d '{"a":"b"}' -H "Content-Type: application/json"
{"a":"b"}
我有一种情况,我想使用 haproxy 将所有 http 请求重定向到 https 请求。比方说,我有一个安装了 haproxy 的服务器 x 和一个实际服务为 运行(使用 ssl)的服务器 y。现在,我希望 haproxy 接受 http 请求并通过 https 将其转发到后端服务器。 有点像这样:
用户<--(http)--> haproxy <--(https)-->实际服务
到目前为止我所做的是,前端在端口 8080 中接受 http 连接并将其发送到其默认后端,在后端我已经预先设置 "ssl verify none".
使用它,我可以从 http 加载页面,但每当我提交请求(比如登录)时,响应都来自 http url,但没有任何效果。
我完全不知道这是否可能。
如果我需要提供更多详细信息,请告诉我。
如能对此有所了解,将不胜感激。
提前致谢。
你的配置是什么?
您可能需要像这样指定端口
server httpsserver 10.0.0.80:443 ssl verify none
一个简单的 https 服务器:
var express = require('express');
var https = require('https');
var fs = require('fs');
var bodyParser = require('body-parser');
var options = {
key: fs.readFileSync('./client-key.pem'),
cert: fs.readFileSync('./client-cert.pem')
};
var app = express();
app.use(bodyParser.json());
app.post('/post', function (req, res) {
res.send(req.body);
});
https.createServer(options, app).listen(443);
POST:
curl -k -X POST https://127.0.0.1/post -d '{"a":"b"}' -H "Content-Type: application/json"
{"a":"b"}
HAProxy 配置:
global
debug
defaults
retries 3
timeout client 300s
timeout connect 300s
timeout server 300s
frontend web
bind *:8080
default_backend app
backend app
balance roundrobin
server httpsserver 127.0.0.1:443 ssl verify none
POST 对抗 HAProxy
curl -k -X POST http://127.0.0.1:8080/post -d '{"a":"b"}' -H "Content-Type: application/json"
{"a":"b"}