サーバーをローカル サブネットからドメインに移動しようとしています。メインの Web ページは機能しており、SSL の背後にあります。Apache は、任意の HTTP 接続から HTTPS への URL を書き換えます。ただし、ブラウザからJavaScriptで接続しようとすると、次のようになります。
new WebSocket("wss://" + window.location.host);
次のエラーが表示されます。
WebSocket connection to 'wss://{MY_WEBSITE}.com/message_route/' failed: Error during WebSocket handshake: Unexpected response code: 404
settings.py の私の構成は次のとおりです。
"default": {
"BACKEND": "asgi_redis.RedisChannelLayer",
"ROUTING": "my_app.routing.channel_routing",
"Config": {
"hosts": [os.environ.get('REDIS_URL', 'redis://127.0.0.0:6379')],
}
},
編集 (Apache 構成データに追加):
私の Apache の default.conf は次のとおりです (単純に HTTPS に書き直します)。
<VirtualHost *:80>
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=301,L]
</VirtualHost>
Apache の secure.conf:
<VirtualHost *:443>
ServerName my_domain.com
SSLEngine on
SSLProxyEngine on
SSLCertificateFile /etc/ssl/my_domain/my_domain.crt
SSLCertificateKeyFile /etc/ssl/my_domain/myserver.key
SSLCACertificateFile /etc/ssl/my_domain/my_domain.ca-bundle
Alias /static /home/user/my_app/myApp/static_files
<Directory /home/user/my_app/myApp/static_files>
Require all granted
</Directory>
<Directory /home/user/my_app/myApp/MyApp>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess MyApp python-path=/home/user/my_app/myApp/MyApp
WSGIProcessGroup MyApp
WSGIScriptAlias / /home/user/my_app/myApp/MyApp/MyApp/wsgi.py
</VirtualHost>
編集 apache がリクエストを受信しているが、何もしていないことが わかりました other_vhosts.access.log を追跡したところ、chrome コンソールで新しい websocket を作成したときに、apache が GET リクエストをログに記録しましたが、django アプリに転送していないようです。
また、ワーカーを実行し、redis サーバーをセットアップし、daphne も実行しています。この問題の可能な解決策があれば教えてください