500 внутренняя ошибка сервера при загрузке html-страницы через NGINX в Ubuntu - PullRequest
1 голос
/ 05 мая 2019

Я работаю над Ubuntu 18 и пытаюсь отобразить страницу HTML с помощью NGINX.Следуя этой ссылке Я сделал следующие шаги:

  1. Создал html-каталог, используя sudo mkdir -p /var/www/sample/html
  2. Поместил мой каталог веб-файлов webui в html выше
  3. Создан файл nginx conf с использованием sudo vi /etc/nginx/sites-available/sample.conf
  4. Помещено ниже в sample.conf

    server {
        listen 80;
        listen [::]:80;
    
        root /var/www/sample/html;
        index index.html index.htm index.nginx-debian.html;
    
        server_name 123.54.67.235;
        location / {
          include proxy_params;
          proxy_http_version 1.1;
          proxy_buffering off;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection "Upgrade";
          proxy_pass http://localhost/webui/;
    
       }
    
       location /app {
         include proxy_params;
         proxy_http_version 1.1;
         proxy_buffering off;
         proxy_set_header Upgrade $http_upgrade;
         proxy_set_header Connection "Upgrade";
         proxy_pass http://123.54.67.235:7000;
    
      }
    

    }

  5. Создана ссылка с него на каталог сайтов с поддержкой sudo ln -s /etc/nginx/sites-available/sample.conf /etc/nginx/sites-enabled/

  6. Без комментариев server_names_hash_bucket_size 64;

  7. Сделал sudo nginx -t.Получил ниже сообщение:

    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful
    
  8. Дид sudo systemctl restart nginx.Ошибка не возникла.

Теперь, когда я пытаюсь перейти на http://123.54.67.235 из своего браузера, я получаю nginx 500 Internal Server Error.

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

ОБНОВЛЕНИЕ : Когда я захожу в свой журнал ошибок Nginx, я вижу ниже ошибку там:

2019/05/05 05:52:51 [alert] 29779#29779: *2588 768 worker_connections are not enough while connecting to upstream, client: 123.54.67.235, server: 134.209.113.22, request: "GET /webui/webui/webui/webui/webui/webui/webui/webui/.....

Примечание: Я использую IP-адрес моего сервера в поле server_name файла conf, поскольку у меня нет доменного имени, назначенного моему серверу.

1 Ответ

0 голосов
/ 05 мая 2019

Оператор proxy_pass http://localhost/webui/; указывает на тот же сервер и генерирует рекурсивный цикл, добавляя бесконечное число /webui/ элементов пути. Директива proxy_pass предназначена для обратного прокси-сервера и используется для пересылки запросов на другой сервер.

Чтобы использовать статический контент, вы должны использовать оператор root.

Если URI /foo должен обслуживать файл на /var/www/sample/html/webui/foo, используйте root /var/www/sample/html/webui;.

Например:

server {
    ...
    root /var/www/sample/html/webui;
    ...    
    location / { }

    location /app {
        include proxy_params;
        proxy_...;
        proxy_pass ...;
    }
}

Блок location / пуст.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...