Ubuntuサーバーのポート9069で実行されているOdooインスタンスがあります。現在、Apacheはポート8069でリッスンしており、これを9069にプロキシパスしています(これは正常に機能します)。有効なURLは http://example.com:8069 です。
ここで、フロントエンドURLのSSLでこれを機能させる必要があります。 ( https://example.com:8069 )。ただし、ブラウザでアクセスすると400 Bad requestエラーが発生します。正確なエラーは次のとおりです。
Bad Request:ブラウザが、このサーバーが理解できないリクエストを送信しました。理由:SSL対応のサーバーポートにプレーンHTTPを話している。代わりに、HTTPSスキームを使用してこのURLにアクセスしてください。example.comのApache/2.4.33(Ubuntu)サーバーポート8069
また、URLがhttpバージョンに変更されることにも気付きました。
以下は、ドメインに使用したvirtualhost confです。
<IfModule mod_ssl.c>
<VirtualHost *:8069>
ServerName MySite
ServerAlias example.com:8069
SSLEngine on
#SSLProxyEngine on
SSLCertificateKeyFile /etc/Apache2/sslfolder/mysite.key
SSLCertificateFile /etc/Apache2/sslfolder/mysite.crt
SSLCertificateChainFile /etc/Apache2/sslfolder/mysite.txt
ProxyPreserveHost On
ProxyRequests Off
ProxyPass /longpolling/ http://localhost:8072/
ProxyPassReverse /longpolling/ http://localhost:8072/
ProxyPass / http://localhost:9069/
ProxyPassReverse / http://localhost:9069/
</VirtualHost>
</IfModule>
すでにApacheエラーログを確認しましたが、そこには有用な情報がありません。
注:example.comには別のvirtualhostファイルがあり、これは80および443ポートが構成されたかなり標準的なファイルです。 (これはWebサイト専用であり、odooではありません)。関連性があると思われる場合は、バーチャルホストを投稿します。
以下の修正で実際に修正しました。
ServerName MySite
に変更されます
ServerName example.com:8069
そして
ProxyPass / http://localhost:9069/
ProxyPassReverse / http://localhost:9069/
に変更されます
ProxyPass / http://localhost:9069/
ProxyPassReverse / http://example.com:8069/
これは数か月前のものであり、検索後につまずきました。これが将来の検索者に役立つ場合...
ServerName
フィールドを変更する必要はなく、ProxyPassReverse
はポート番号を必要としませんでしたが、リバースプロキシ構成で同様のことを行います。だからあなたの設定を使って、私は試したでしょう:
ProxyPass / http://localhost:9069/
ProxyPassReverse / http://localhost/
それが誰かを助ける場合:私の場合、一部のリクエストのみが400コードを返していました。
私は次のように修正しました:
ProxyPreserveHostオン
ユーザーがURLの後にポート8069を入力することは望ましくありません。
従来の80/443アプローチを使用して、プロキシに8069ポートを処理/非表示させます。
Listen 80
##AAdd rewrite rules here to convert http to https
<VirtualHost *:443>
ServerName MySite
ServerAlias example.com
SSLEngine on
#SSLProxyEngine on
SSLCertificateKeyFile /etc/Apache2/sslfolder/mysite.key
SSLCertificateFile /etc/Apache2/sslfolder/mysite.crt
SSLCertificateChainFile /etc/Apache2/sslfolder/mysite.txt
ProxyPreserveHost On
ProxyRequests Off
## if odoo is on local Host
ProxyPass / http://localhost:8069/
ProxyPassReverse / http://localhost:8069/
## if odoo is on remote Host and you do not want intranet users interception non ssl traffic
ProxyPass / https://odoo_ip_address:8070
ProxyPassReverse https://odoo_ip_adress:8070
##odoo http port is 8069 and https port is 8070
</VirtualHost>