2

サーバーをローカル サブネットからドメインに移動しようとしています。メインの 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 も実行しています。この問題の可能な解決策があれば教えてください

4

0 に答える 0