Запрашиваемый адрес недопустим в контексте ошибки (Socketio Python Aiohttp) - PullRequest
0 голосов
/ 03 марта 2020

У меня проблемы с реализацией SSL для моего соединения aiohttp TCPSite. У меня есть VPS с Ubuntu и Apache. Мои конфигурационные файлы настроены на включение CORS, а SSL активен на сервере. Когда я go перехожу к фактическому ресурсу ie https://irisslivedev.com: 448 , проблем не возникает, что еще больше наводит меня на мысль, что это python asyn c проблема с сервером.

Во внешнем интерфейсе я получаю ошибку 404 для ресурса, что может означать только то, что сервер TCPSite не прослушивает порт ... верно? Вот код для сервера:

sslcontext = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)
sslcontext.load_cert_chain('cert2.pem', 'privkey2.pem')


app = web.Application()

sio = socketio.AsyncServer(cors_allowed_origins='*')


sio.attach(app)

SOCKET_PORT = 448

SERVER_URL = "irisslivedev.com"


async def runSIOWebApp(port):                 
    # We bind our aiohttp endpoint to our app
    # router
    #web.run_app(self.app, host=self.server, port=self.port)
    logger.log_il("Initializing Web App Runner...")
    runner = web.AppRunner(app)
    try: 
        logger.log_il("Starting Web App Runner on %s:%s..." % (SERVER_URL,port))
        await runner.setup()
        site = web.TCPSite(runner, SERVER_URL, port, ssl_context=sslcontext)
        logger.log_il("Starting Site...")
        await site.start()
        while (True):
            await asyncio.sleep(1)
    except Exception as e:
        logger.log_il("Could not start SIO Web App. %s " % e)
        traceback.print_exc(file=sys.stdout)
    finally: 
        logger.log_il("Closing Web App Runner...")
        await runner.cleanup()

Когда я запускаю трассировку стека, это вывод:

Traceback (most recent call last):
  File "il_receiver.py", line 198, in runSIOWebApp
    await site.start()
  File "C:\Users\jose\Python\lib\site-packages\aiohttp\web_runner.py", line 100, in start
    self._server = await loop.create_server(  # type: ignore
  File "C:\Users\jose\Python\lib\asyncio\base_events.py", line 1459, in create_server
    raise OSError(err.errno, 'error while attempting '
OSError: [Errno 10049] error while attempting to bind on address ('165.22.39.188', 443): the requested address is not valid in its context

Я действительно не уверен, откуда отсюда go, я Выискивали все ресурсы, которые я могу найти, и похожие ответы. Из того, что я понимаю, ошибка возникает, когда вы пытаетесь привязать сокет не на локальной машине, или когда он уже используется.

Вот мой конфиг:

``

    ServerAdmin [email]
    DocumentRoot /var/www/165.22.39.188/html
    ServerName 165.22.39.188

    Header always set Access-Control-Allow-Origin "https://irisslivedev.com"
    Header always set Access-Control-Allow-Methods "*"
    Header always set Access-Control-Max-Age "1000"
    Header always set Access-Control-Allow-Headers "*"
    Header always set Access-Control-Allow-Credentials true

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

  ServerAlias irisslivedev.com
  Include /etc/letsencrypt/options-ssl-apache.conf
  ServerAlias www.irisslivedev.com
  SSLCertificateFile /cert.pem
  SSLCertificateKeyFile /pkey.pem
 </VirtualHost>
 </IfModule>

`` Если есть какой-нибудь способ, которым я могу прояснить этот вопрос, пожалуйста, дайте мне знать.

...