# Cors для контейнера AceStream engine

**URL:** <https://forum.acestream.media/t/cors-dlya-kontejnera-acestream-engine/3841>\
**Category:** Issues and Solutions\
**Created:** [01.Август.2024 10:07:21 UTC](https://forum.acestream.media/t/cors-dlya-kontejnera-acestream-engine/3841 "2024-08-01T10:07:21Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Maksim\_Kirsanov](https://forum.acestream.media/user_avatar/forum.acestream.media/maksim_kirsanov/32/1780_2.png) [@Maksim\_Kirsanov](https://forum.acestream.media/u/Maksim_Kirsanov)\
**Post date:** [01.Август.2024 10:07:22 UTC](https://forum.acestream.media/t/cors-dlya-kontejnera-acestream-engine/3841/1 "2024-08-01T10:07:22Z")

</div>

Я взял контейнер vstavrinov/acestream-engine:latest, хотел разместить его на хостинге для трансляции, но при http запросах на сервер возникает ошибка CORS. Возможно как-то разрешить политику CORS на сервере Ace Stream engine?

```auto
FROM python:3.8
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
ENV BASE_URL="https://download.acestream.media/linux"
ENV ACE_VERSION="3.1.75rc4_ubuntu_18.04_x86_64_py3.8"
ENV PYTHONDONTWRITEBYTECODE=0
RUN useradd --shell /bin/bash --home-dir /srv/ace --create-home ace
USER ace
WORKDIR /srv/ace
ADD setup.cfg .
RUN curl --progress-bar $BASE_URL/acestream_$ACE_VERSION.tar.gz | tar xzf -; \
    cd lib; unzip \*.egg; rm *.egg; cd; \
    ln -s /dev/shm/.ACEStream .ACEStream; \
    pip install --no-cache-dir --upgrade --requirement requirements.txt
CMD mkdir /dev/shm/.ACEStream; \
    ./start-engine \
        --client-console \
        --live-cache-type memory

```

---

<div class="post-metadata">

**Author:** ![Maksim\_Kirsanov](https://forum.acestream.media/user_avatar/forum.acestream.media/maksim_kirsanov/32/1780_2.png) [@Maksim\_Kirsanov](https://forum.acestream.media/u/Maksim_Kirsanov)\
**Post date:** [01.Август.2024 12:42:44 UTC](https://forum.acestream.media/t/cors-dlya-kontejnera-acestream-engine/3841/2 "2024-08-01T12:42:44Z")

</div>

Hello, I have placed a docker container on the hosting. I want to make requests there and get a response as m3u8. Only I get a response in the form of .ts returned with port 6878 (with port does not work, only without port). Question, how can I fix it?

---

<div class="post-metadata">

**Author:** ![Benny](https://forum.acestream.media/letter_avatar_proxy/v4/letter/b/49beb7/32.png) [@Benny](https://forum.acestream.media/u/Benny)\
**Post date:** [01.Август.2024 17:21:08 UTC](https://forum.acestream.media/t/cors-dlya-kontejnera-acestream-engine/3841/3 "2024-08-01T17:21:08Z")

</div>

Без понимания конечной цели на этот вопрос трудно ответить однозначно:

- если цель в том, чтобы дать клиенту веб-интерфейс к уже запущенному на устройстве пользователя движку Ace Stream, то см. [JavaScript Library - Ace Stream Wiki](https://wiki.acestream.media/JavaScript_Library)
- если же цель в том, чтобы отдавать уже готовый HTTP поток или HLS/M3U плейлист, который воспроизводится в плеере, и не требует запущенного на устройстве пользователя движка Ace Stream, то сам движок нужно “прятать” за прокси сервером - “прямым” ([HTTP AceProxy](https://github.com/pepsik-kiev/HTTPAceProxy)) или “обратным” (nginx).  
В случае nginx сам движок лучше запускать на отдельном IP/хосте, тогда конфиг nginx может выглядеть как-то так:

> **HTTP**
>
> ```auto
> server {
> listen 6878;
> server_name ace.host;
> return 301 http://$server_name:80$request_uri;
> }
> server {
> listen 80;
> server_name ace.host;
> 	
> access_log /var/log/nginx/ace_access.log;
> error_log /var/log/nginx/ace_error.log;
> 
> location / {
> proxy_pass http://ace_engine_IP:6878;
> proxy_read_timeout 300;
> proxy_set_header Host $host;
> proxy_set_header X-Real-IP $remote_addr;
> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
> proxy_redirect http://ace.host:6878/ http://ace.host:80/;
> proxy_intercept_errors on;
> }
> }
> 
> ```

или

> **HTTPS**
>
> ```auto
> server {
> listen 80;
> server_name ace.host;
> return 301 https://$server_name:443$request_uri;
> }
> server {
> listen 6878;
> server_name ace.host;
> return 301 https://$server_name:443$request_uri;
> }
> server {
> listen 443 ssl http2;
> server_name ace.host;
> 	
> access_log /var/log/nginx/ace_access.log;
> error_log /var/log/nginx/ace_error.log;
> 
> location / {
> proxy_pass http://ace_engine_IP:6878;
> proxy_read_timeout 300;
> proxy_set_header Host $host;
> proxy_set_header X-Real-IP $remote_addr;
> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
> proxy_redirect http://ace.host:6878/ https://ace.host:443/;
> proxy_intercept_errors on;
> }
> }
> 
> ```

---

<div class="post-metadata">

**Author:** ![Maksim\_Kirsanov](https://forum.acestream.media/user_avatar/forum.acestream.media/maksim_kirsanov/32/1780_2.png) [@Maksim\_Kirsanov](https://forum.acestream.media/u/Maksim_Kirsanov)\
**Post date:** [05.Август.2024 09:26:59 UTC](https://forum.acestream.media/t/cors-dlya-kontejnera-acestream-engine/3841/7 "2024-08-05T09:26:59Z")

</div>

С CORS разобрался, возникает другая проблема. Получаю .m3u8, начинается подгрузка .ts для трансляции, но на 3-4 части происходит ошибка в браузере.

**На firefox:**  
NS\_BINDING\_ABORTED

**На chrome:**  
canceled

Он принимает первые 2 .ts файла и дальше не отвечает. С чем это может быть связано?

**Скриншот из Firefox** : [https://post-images.org/photo-page.php?photo=YsyoHMTC](https://post-images.org/photo-page.php?photo=YsyoHMTC)

**Ответ с сервера nginx**

```auto
127.0.0.1 - - [05/Aug/2024:09:39:20 +0000] "GET /ace/m/88c482d9e57b1a031c032344f9c00cf7b36da8d9/f528764d624db129b32c21fbca0cb8d6.m3u8 HTTP/1.1" 200 186 "http://localhost:5173/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0"
127.0.0.1 - - [05/Aug/2024:09:39:21 +0000] "GET /ace/m/88c482d9e57b1a031c032344f9c00cf7b36da8d9/f528764d624db129b32c21fbca0cb8d6.m3u8 HTTP/1.1" 200 283 "http://localhost:5173/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0"
127.0.0.1 - - [05/Aug/2024:09:39:21 +0000] "GET /ace/c/88c482d9e57b1a031c032344f9c00cf7b36da8d9/0.ts HTTP/1.1" 200 5150072 "http://localhost:5173/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0"
127.0.0.1 - - [05/Aug/2024:09:39:24 +0000] "GET /ace/m/88c482d9e57b1a031c032344f9c00cf7b36da8d9/f528764d624db129b32c21fbca0cb8d6.m3u8 HTTP/1.1" 200 478 "http://localhost:5173/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0"
127.0.0.1 - - [05/Aug/2024:09:39:25 +0000] "GET /ace/c/88c482d9e57b1a031c032344f9c00cf7b36da8d9/1.ts HTTP/1.1" 200 5912222 "http://localhost:5173/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0"

```

Обращаясь через POSTMAN напрямую я получаю ответ со статусом 200 и 9мб фрагмент трансляции
