Форум программистов, компьютерный форум, киберфорум
Rust
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 22.09.2023
Сообщений: 54

Перестал работать сервис, написанный на Rust

09.01.2024, 15:57. Показов 1931. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!

Помогите, пожалуйста, разобраться.

В нашей организации был написан сервис на Rust-е, который работает на сервере под Linux.
Этот сервис несколько лет работал нормально. Недавно при перезапуске сервера этот сервис не запустился.
Мы его вроде бы запустили, в списке процессов он появился, но он все равно не функционирует.

Суть сервиса: по http-запросу этот сервис предоставляет дополнительные возможности для работы с Честным знаком.
Название сервиса: arm-marking (АРМ маркировки).

Вот что выдается в логах Nginx-серврера:
Кликните здесь для просмотра всего текста
error.log

2024/01/09 13:13:24 [error] 2281#0: *522 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.33.10, server: marking-arm.corp.pskovmol.ru, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:9090/", host: "marking-arm.corp.pskovmol.ru"
2024/01/09 13:13:25 [error] 2281#0: *522 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.33.10, server: marking-arm.corp.pskovmol.ru, request: "GET /favicon.ico HTTP/1.1", upstream: "http://127.0.0.1:9090/favicon.ico", host: "marking-arm.corp.pskovmol.ru", referrer: "http://marking-arm.corp.pskovmol.ru/"
2024/01/09 13:15:23 [error] 2283#0: *551 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.33.10, server: marking-arm.corp.pskovmol.ru, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:9090/", host: "marking-arm.corp.pskovmol.ru"
2024/01/09 13:15:27 [error] 2283#0: *551 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.33.10, server: marking-arm.corp.pskovmol.ru, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:9090/", host: "marking-arm.corp.pskovmol.ru"
2024/01/09 14:42:32 [error] 2286#0: *4856 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 192.168.33.10, server: marking-arm.corp.pskovmol.ru, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:9090/", host: "marking-arm.corp.pskovmol.ru"
2024/01/09 14:42:32 [error] 2285#0: *4726 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 192.168.33.10, server: marking-arm.corp.pskovmol.ru, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:9090/", host: "marking-arm.corp.pskovmol.ru"
2024/01/09 14:42:32 [error] 2286#0: *4856 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.33.10, server: marking-arm.corp.pskovmol.ru, request: "GET /favicon.ico HTTP/1.1", upstream: "http://127.0.0.1:9090/favicon.ico", host: "marking-arm.corp.pskovmol.ru", referrer: "http://marking-arm.corp.pskovmol.ru/"
2024/01/09 14:42:39 [alert] 2286#0: *4924 open socket #21 left in connection 5
2024/01/09 14:42:39 [alert] 2286#0: aborting
2024/01/09 15:29:06 [alert] 2295#0: *2358 open socket #21 left in connection 4
2024/01/09 15:29:06 [alert] 2295#0: aborting
2024/01/09 15:29:06 [alert] 2293#0: *2357 open socket #25 left in connection 4
2024/01/09 15:29:06 [alert] 2293#0: aborting


Кликните здесь для просмотра всего текста

marking-arm.host.access.log

192.168.33.10 - - [09/Jan/2024:14:58:48 +0300] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4137.1 SputnikBrowser/5.6.6290.0 (GOST) Safari/537.36" "-"
192.168.33.10 - - [09/Jan/2024:14:58:48 +0300] "GET /favicon.png HTTP/1.1" 200 360 "http://marking-arm.corp.pskovmol.ru/" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4137.1 SputnikBrowser/5.6.6290.0 (GOST) Safari/537.36" "-"
192.168.33.10 - - [09/Jan/2024:14:58:49 +0300] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4137.1 SputnikBrowser/5.6.6290.0 (GOST) Safari/537.36" "-"
192.168.33.10 - - [09/Jan/2024:14:58:49 +0300] "GET /favicon.png HTTP/1.1" 200 360 "http://marking-arm.corp.pskovmol.ru/" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4137.1 SputnikBrowser/5.6.6290.0 (GOST) Safari/537.36" "-"
192.168.33.10 - - [09/Jan/2024:15:00:48 +0300] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4137.1 SputnikBrowser/5.6.6290.0 (GOST) Safari/537.36" "-"
192.168.33.10 - - [09/Jan/2024:15:00:48 +0300] "GET /favicon.png HTTP/1.1" 200 360 "http://marking-arm.corp.pskovmol.ru/" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4137.1 SputnikBrowser/5.6.6290.0 (GOST) Safari/537.36" "-"
192.168.33.10 - - [09/Jan/2024:15:00:52 +0300] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4137.1 SputnikBrowser/5.6.6290.0 (GOST) Safari/537.36" "-"
192.168.33.10 - - [09/Jan/2024:15:00:53 +0300] "GET /favicon.png HTTP/1.1" 200 360 "http://marking-arm.corp.pskovmol.ru/" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4137.1 SputnikBrowser/5.6.6290.0 (GOST) Safari/537.36" "-"
192.168.33.10 - - [09/Jan/2024:15:23:58 +0300] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0" "-"
192.168.33.10 - - [09/Jan/2024:15:23:59 +0300] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0" "-"
192.168.33.10 - - [09/Jan/2024:15:29:40 +0300] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0" "-"
192.168.33.10 - - [09/Jan/2024:15:29:50 +0300] "GET / HTTP/1.1" 200 9111 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" "-"
192.168.33.10 - - [09/Jan/2024:15:29:57 +0300] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" "-"
192.168.33.10 - - [09/Jan/2024:15:33:32 +0300] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0" "-"
192.168.33.10 - - [09/Jan/2024:15:34:29 +0300] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" "-"
192.168.33.10 - - [09/Jan/2024:15:35:04 +0300] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0" "-"


Как найти почему не работает сервис?
Подскажите направление, в котором надо искать.

Добавлено через 3 минуты
Исходники сервиса есть. Но они не менялись.

Раньше при работающем сервисе мы заходили в браузере на страницу "http://marking-arm.corp.pskovmol.ru/", на странице отображалась определенная информация, и мы выполняли нужные действия.

Сейчас при заходе на эту страницу она просто пустая.
Из-за чего это может быть?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.01.2024, 15:57
Ответы с готовыми решениями:

Перестал работать веб сервис
Добрый день. перестал работать веб сервис,в логах как я разобрался,что то ему не хватает,ток что?)

Зарегистрировать сервис написанный на Delphi?
subj

Rust - Visual Studio Code - Explorer - RUST TUTORIAL где?
здравствуйте, при создании проекта использовал Visual Studio Code слева в вертикальной панели 1-й элемент сверху Explorer как добиться,...

16
Эксперт .NET
 Аватар для Usaga
14098 / 9315 / 1349
Регистрация: 21.01.2016
Сообщений: 34,991
09.01.2024, 16:15
Лучший ответ Сообщение было отмечено Catstail как решение

Решение

zelenprog, в логах сказано, что форвард запроса на http:/127.0.0.1:9090 накрылся медным тазиком, ибо никто на этом порту не отвечает.

Значит там никого нет… Разбирайся почему.
1
0 / 0 / 0
Регистрация: 22.09.2023
Сообщений: 54
09.01.2024, 17:15  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Значит там никого нет… Разбирайся почему.
При просмотре в браузере кода страницы в консоли выдаются вот такие ошибки:

----------
Ресурс с «https://unpkg.com/vue@next» был заблокирован из-за несоответствия MIME-типа («text/plain») (X-Content-Type-Options: nosniff).
----------
Uncaught ReferenceError: Vue is not defined http://marking-arm.corp.pskovmol.ru/js/app.js:76
----------

Вот строка 76 из app.js: Vue.createApp(App).mount(‘#app’)

Получается, эта команда зачем-то лезет на unpkg.com.
А зачем?
0
Эксперт .NET
 Аватар для Usaga
14098 / 9315 / 1349
Регистрация: 21.01.2016
Сообщений: 34,991
09.01.2024, 17:29
Цитата Сообщение от zelenprog Посмотреть сообщение
При просмотре в браузере кода страницы в консоли выдаются вот такие ошибки:
Какой страницы? В логах чётко сказано, что апстрим не отвечает... Какой ещё vue и unpgk.com?
0
0 / 0 / 0
Регистрация: 22.09.2023
Сообщений: 54
09.01.2024, 17:40  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Какой страницы?
Этот сервис так работает:
- пользователь заходит в браузере на http-стринцу этого сервиса
- там высвечиваются список файлов, действия с ними

Так вот сейчас при попытке зайти на страницу сервиса отображается просто пустая страница.
Нажимаю правой кнопкой "Показать код", затем перехожу на вкладку "Консоль" и вижу там ошибки, которые выше выложил.

Цитата Сообщение от Usaga Посмотреть сообщение
В логах чётко сказано, что апстрим не отвечает... Какой ещё vue и unpgk.com?
Вот поэтому апстрим и не отвечает, потому что он пытается сформировать и "отдать" эту html-страничку.
И при попытке куда-то обратиться вываливается с ошибкой.

Вот строки из index.html:
HTML5
1
2
<!-- VUE JS -->
<script src="https://unpkg.com/vue@next"></script>
А вот код из app.js, который видимо связан с index.html:
JavaScript
1
Vue.createApp(App).mount('#app')
Только что с этим делать?
0
0 / 0 / 0
Регистрация: 22.09.2023
Сообщений: 54
09.01.2024, 17:43  [ТС]
Прикладываю этот app.js.
Строка с ошибкой - самая последняя.
Кликните здесь для просмотра всего текста
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
const url = '/api/v1/upload'
 
const data = {
    status: "",
    prefixes: [],
    barcodes: DATA,
    hide_barcode_list: true,
    show_hidden: false,
    tut_image:"0.png"
};
 
const data_fun = () => data;
 
const App = {
    mounted: async function () {
        await fetch_prefixes(this);
    },
    methods: {
        hide_prefix(prefix){
            apply_action(prefix,"hide", this);
        },
        show_prefix(prefix){
            apply_action(prefix,"show", this);
        },
        code_to_name(code_string) {
            return l_code_to_name(code_string)
        },
        date_format(unix_date) {
            return l_sec_to_iso(unix_date);
        },
        clearStatus() {
            this.status = "";
            console.log("!")
        },
        getTermination(num){
            return l_getTermination(num);
        },
        set_image(image_name){
            this.tut_image = image_name;
        },
        onSubmit() {
            const files = document.querySelector('[type=file]').files
 
            let file = files[0]
            if (!file) {
                UIkit.notification("Не выбран файл", {status: 'warning'});
                status = "";
                return;
            }
            let reader = new FileReader();
 
            const that = this;
 
            reader.onload = function (e) {
                let arrayBuffer = reader.result;
 
                fetch(url, {
                    method: 'POST',
                    body: arrayBuffer,
                }).then(async (response) => {
                    if (response.ok) {
                        UIkit.notification(await response.text());
                        that.status = "";
                        await fetch_prefixes(that);
                    }
                })
            }
            that.status = "Обработка...";
            reader.readAsArrayBuffer(file);
        }
    },
    data: data_fun
};
 
 
Vue.createApp(App).mount('#app')
Вложения, ожидающие проверки
Тип файла: 7z app.7z
0
Эксперт .NET
 Аватар для Usaga
14098 / 9315 / 1349
Регистрация: 21.01.2016
Сообщений: 34,991
09.01.2024, 17:48
Цитата Сообщение от zelenprog Посмотреть сообщение
Вот поэтому апстрим и не отвечает, потому что он пытается сформировать и "отдать" эту html-страничку.
Никто ничего не пытается сделать. В логах сказано, что подключение по порту 9090 сбрасывается (за отсутствием прослушивающего). Не надо придумывать несуществующие проблемы.

Твой веб-сервер работает в режиме revers-proxy и пытается перенаправлять часть запросов на порт 9090 на той же машине, где сам крутится. Но не получает ответ.

Вот в этом проблема.

А почему на этом порту никто не висит я не знаю. Видимо не стартует (или вылетает) твоё приложение на rust. В этом направлении надо копать
0
0 / 0 / 0
Регистрация: 22.09.2023
Сообщений: 54
09.01.2024, 18:11  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Видимо не стартует (или вылетает) твоё приложение на rust. В этом направлении надо копать
Да, именно в этом дело.
Rust-приложение в ответ на запрос формирует http-страничку. Вот при формировании этой странички приложение и вылетает.
Получается, запрос на порт 9090 отправлен, а приложение вылетело и не смогло на него ответить. Поэтому веб-сервер считает, что прослушивающий не отвечает.

Вопрос теперь в том, как исправить эту ошибку.
Видимо в пакете vue@next, что-то изменилось.
0
Эксперт .NET
 Аватар для Usaga
14098 / 9315 / 1349
Регистрация: 21.01.2016
Сообщений: 34,991
10.01.2024, 05:55
Цитата Сообщение от zelenprog Посмотреть сообщение
Rust-приложение в ответ на запрос формирует http-страничку. Вот при формировании этой странички приложение и вылетает.
Технически такое может быть.

Цитата Сообщение от zelenprog Посмотреть сообщение
Видимо в пакете vue@next, что-то изменилось.
А это чудеса на виражах. Vue - это библиотека на JS. Она ФИЗИЧЕСКИ никак не может быть причиной вылета сервера. Ибо сервер с ней никак не работает. Он только ссылку на неё в текст страницы вставляет. Т.е. то же самое, что если бы ты написал на листочке "Эбола" тут же от неё сдох.

Мне кажется, что мы ходим вокруг да около. Проверь, прослушивается ли порт 9090 на сервере. Однозначно нет. Не надо грешить на то, что причиной быть не может.
0
 Аватар для CopBuroJLoBa
150 / 132 / 53
Регистрация: 03.01.2017
Сообщений: 472
10.01.2024, 06:25
ChatGPT
Цитата Сообщение от ChatGPT Посмотреть сообщение
Судя по предоставленным логам, возможно, проблема связана с тем, что Nginx не может подключиться к вашему сервису на порту 9090. Вот несколько шагов, которые вы можете предпринять для выяснения причины проблемы:

1. Проверьте, запущен ли сервис:
Убедитесь, что ваш сервис arm-marking действительно запущен на порту 9090. Вы можете использовать команду netstat или lsof для проверки:

Bash
1
netstat -tulpn | grep 9090
Или с использованием lsof:

Bash
1
lsof -i :9090
Если сервис не запущен, возможно, произошла ошибка при его запуске. В таком случае, проверьте логи вашего приложения на наличие ошибок.

2. Проверьте конфигурацию Nginx:
Убедитесь, что ваш конфигурационный файл Nginx содержит правильные настройки прокси для вашего сервиса. Пример конфигурации:

nginx
Rust
1
2
3
4
5
6
7
8
9
10
11
12
13
server {
    listen 80;
    server_name marking-arm.corp.pskovmol.ru;
 
    location / {
        proxy_pass [url]http://127.0.0.1:9090;[/url]
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}
Убедитесь, что это соответствует вашей конфигурации.

3. Проверьте брандмауэр:
Убедитесь, что брандмауэр не блокирует соединение на порту 9090.

4. Проверьте логи вашего Rust-сервиса:
Изучите логи вашего Rust-сервиса на наличие ошибок или предупреждений, которые могли бы указать на причину сбоя.

5. Проверьте системные ресурсы:
Убедитесь, что сервер имеет достаточные ресурсы (память, CPU) для запуска вашего сервиса.

После проведения этих шагов, вы можете обнаружить, в чем заключается проблема. Если проблема не решена, уточните подробности, и я постараюсь предоставить дополнительную помощь.
0
Эксперт .NET
 Аватар для Usaga
14098 / 9315 / 1349
Регистрация: 21.01.2016
Сообщений: 34,991
10.01.2024, 07:29
CopBuroJLoBa, я это ТСу уже говорил. Тут нужны пункты 1 и 4.
0
0 / 0 / 0
Регистрация: 22.09.2023
Сообщений: 54
10.01.2024, 10:49  [ТС]
Вроде бы разобрались!

Вот здесь мне подсказали:
https://github.com/vuejs/core/discussions/10056

Два html-файла содержали вот такой код:

HTML5
1
2
<!-- VUE JS -->
<script src="https://unpkg.com/vue@next"></script>
Все заработало после замены на «https://unpkg.com/vue@^3.4.0»

Добавлено через 1 минуту
Цитата Сообщение от CopBuroJLoBa Посмотреть сообщение
Проверьте конфигурацию Nginx:
Убедитесь, что ваш конфигурационный файл Nginx содержит правильные настройки прокси для вашего сервиса. Пример конфигурации:
А где находится эта конфигурация?
0
Эксперт .NET
 Аватар для Usaga
14098 / 9315 / 1349
Регистрация: 21.01.2016
Сообщений: 34,991
10.01.2024, 12:31
zelenprog, т.е. после перезагрузки сервера у вас там поменялась логика кода, который страницы формирует? И при этом ещё и падать начало приложение, которое никакие скрипты не грузит, чтобы крешиться?

Цитата Сообщение от zelenprog Посмотреть сообщение
А где находится эта конфигурация?
/etc/nginx/. Но какая разница, если у тебя всё заработало?
0
0 / 0 / 0
Регистрация: 22.09.2023
Сообщений: 54
10.01.2024, 13:54  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
т.е. после перезагрузки сервера у вас там поменялась....
Нет!
У нас вообще ничего не поменялось. Поменялся подгружаемый из интернета пакет.

HTML-страница, которая формируется нашим сервисом, использует какой-то сторонний js-пакет vue, который загружается онлайн с сайта unpkg.com:
"<script src="https://unpkg.com/vue@next"></script>"

С этого года у них там в пакете что-то поменялось, и загружаемая новая версия пакета стала выдавать ошибку.

Чтобы ошибки не было разработчики пакета мне посоветовали подгружать не последнюю версию, а конкретную версию 3.4.0:
"<script src="https://unpkg.com/vue@^3.4.0"></script>"

Вроде бы можно как-то этот пакет расположить локально на нашем сервере, чтобы вообще исключить подобные ошибки.
Но я не знаю как это сделать. Надо разбираться.

Добавлено через 2 минуты
Цитата Сообщение от Usaga Посмотреть сообщение
>> А где находится эта конфигурация?
/etc/nginx/.
А в каком файле? Там в папке много файлов.
Цитата Сообщение от Usaga Посмотреть сообщение
Но какая разница, если у тебя всё заработало?
Постепенно изучаю, все что связано с работой этого сервиса.
Чтобы при необходимости я мог переделать\перенастроить.
0
Эксперт .NET
 Аватар для Usaga
14098 / 9315 / 1349
Регистрация: 21.01.2016
Сообщений: 34,991
11.01.2024, 11:00
Цитата Сообщение от zelenprog Посмотреть сообщение
У нас вообще ничего не поменялось. Поменялся подгружаемый из интернета пакет.
Так этот пакет браузер подгружает, а не ваше сервис. Сервис, который текст страницы генерирует, к этому пакету отношение не имеет, что бы падать из-за его содержимого...
0
0 / 0 / 0
Регистрация: 22.09.2023
Сообщений: 54
11.01.2024, 12:08  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Так этот пакет браузер подгружает, а не ваше сервис. Сервис, который текст страницы генерирует, к этому пакету отношение не имеет, что бы падать из-за его содержимого...
Я сам не полностью понимаю механику работы веб-сервера, нашего сервиса, браузера.
Я раньше с веб-технологиями не сталкивался, писал только десктопные приложения.
А сейчас вот поручили разобраться и исправить наш сервис.

Рассуждения мои примерно следующие...

Чисто логически я согласен, что сервис не должен падать из-за найденной выше ошибки.
Однако, факты упрямая вещь.
После замены адреса подгружаемого пакета все заработало. И ошибки в логах nginx-а пропали.
Значит, наш сервис (апстрим) до исправления html-файла почему-то падал (или просто ничего не возвращал), и не давал никакого ответа nginx-у.
А после исправления стал работать как положено.

В исходных текстах сервиса (написан на Rust-e) есть вот такие строки:

Rust
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/// Главная страница
fn index() -> impl Filter<Extract = impl warp::Reply, Error = warp::Rejection> + Clone {
    warp::path::end().and(warp::fs::file("./web_ui/index.html"))
}
 
/// /
/// Главная страница
fn print() -> impl Filter<Extract = impl warp::Reply, Error = warp::Rejection> + Clone {
    warp::path("print").and(warp::fs::file("./web_ui/print.html"))
}
 
/// файлы javascript
pub(crate) fn js_static() -> impl Filter<Extract=(File, ), Error=warp::Rejection> + Clone {
    warp::fs::dir("web_ui/js")
}
Возможно, именно в этих строках проблема.
Как я понимаю, порядок работы такой:
- nginx принимает запрос и перенаправляет его в апстрим (наш сервис)
- сервис по этому запросу формирует html-страницу (наполняет ее содержимым - списком файлов). Похоже, что это делается с помощью вышеуказанных строк кода.
- сервис отправляет сформированную html-страницу nginx-у.
- nginx отправляет сформированную html-страницу браузеру.

Очевидно, что html-страница должна быть сформирована (заполнена данными) до отправки браузеру.
А это должен сделать наш сервис. Не браузер же будет заполнять в ней список файлов?
Видимо, при формировании html-страницы происходит обращение к js-скрипту vue.
0
Эксперт .NET
 Аватар для Usaga
14098 / 9315 / 1349
Регистрация: 21.01.2016
Сообщений: 34,991
11.01.2024, 12:44
zelenprog, ну, единственное адекватное объяснение может быть в том, что ваш сервис не просто формирует страницы, а сам за ними куда-то лезет, как-то обрабатывает\дополняет, и уже результат отдаёт дальше. И если логика этого сервиса как-то заточена на конкретное содержимое получаемой страницы, то тут оно и могло падать, да.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.01.2024, 12:44
Помогаю со студенческими работами здесь

[Rust] Обсуждение возможностей и предстоящей роли языка Rust
Psilon, чем он тебя так привлек? И почему именно &quot;убийца плюсов&quot;? Если напишешь развернутый ответ, обещаю вынести в отдельную тему и...

[Rust] Как привязывать WinAPI-функции к коду на Rust?
Может кто-нить дать код, КАК привязывать вин апишные функции к растовскому коду (на примере MesageBox). ...

Почему макрос, написанный в 2000 офисе, отказывается работать в 97?
Почему макрос написанный в 2000 офисе отказывается работать в 97. Спасибо.

Как работать с OLAP, используя интерфейс, написанный на Delphi?
Добрый день. Никто не пробовал работать с OLAP-ом используя интерфейс, написанный на Дельфи ? Я програмлю на VB6 (стыдно...

Web сервис перестал получать доступ к папке
Всем привет! Ситуация несколько странная. Есть веб-сервис, которому передаются некие данные, и он записывает их в файл на диске в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru