2017-11-03 19 views
0

私は、すべてのhttp要求を、https要求にhaproxyを使用してリダイレクトする状況があります。たとえば、haproxyがインストールされているサーバxと、実際のサービスが実行されているサーバy(sslを使用)があります。今、私は、HTTPリクエストを受け入れ、https経由でバックエンドサーバーに転送するようにしたいと考えています。 - (HTTP) - > haproxy < - (HTTPS) - >実際のサービスhaproxyを使用したhttps要求へのHTTP要求

私がこれまでされており、フロントエンドは、ポート8080でHTTP接続を受け入れるやっていること

ユーザー<:ちょっと、このような それはバックエンドでデフォルトのバックエンドに送信され、私は "ssl verify none"の前に追加されています。

これを使用すると、httpからページを読み込むことができますが、リクエスト(ログイン)を送信するたびに、http urlにレスポンスが送信され、何も動作しません。

これが可能かどうかわかりません。

詳細については、私にお知らせください。

これについての光は非常に親切です。

ありがとうございます。

答えて

1

あなたの設定は何ですか?

あなたはこの

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"} 
関連する問題