Рейтинг:0

Сервер Nginx продолжает обслуживать главную страницу Debian

флаг in

Я пытаюсь создать простой пользовательский веб-сайт. Я построил простой сервер, используя Golang и фреймворк Gingonic. Мой сервер Go выглядит следующим образом:

основная функция () {
        г := джин.По умолчанию()
        r.GET("/", ServeMainPage)
        r.GET("/icons/openlogo-75.png", func(c *gin.Context) {
                c.Файл("favicon.ico")
        })
        r.GET("/эпизод/:id", ServeEpisode)
        r.GET("style/style.css", func(c *gin.Context) {
                c.Файл("стили/style.css")
        })
        r.GET("скрипты/main.js", func(c *gin.Context) {
                c.File("скрипты/main.js")
        })
        r.GET("favicon.ico", func(c *gin.Context) {
                c.Файл("favicon.ico")
        })
        р.Выполнить()
}

func ServeMainPage(c *gin.Context) {
        c.Файл("index.html")
}

func ServeEpisode(c *gin.Context) {
        EpisodeID := c.Param("id")
        путь к файлу := "Аудиофайлы/" + идентификатор эпизода + ".mp3"
        c.Файл(путь к файлу)
}

Поскольку этот процесс не может получить доступ к порту 80 (он работает на: 8080), и поскольку я пытаюсь развить свои навыки, я попытался настроить сервер nginx для работы в качестве обратного прокси-сервера. Мой сервер nginx имеет следующую конфигурацию по умолчанию:

http {

        ##
        # Основные настройки
        ##

        отправить файл включен;
        tcp_nopush включен;
        tcp_nodelay включен;
        keepalive_timeout 65;
        типы_хэш_макс_размер 2048;
        # server_tokens off;

        # server_names_hash_bucket_size 64;
        # server_name_in_redirect off;

        включить /etc/nginx/mime.types;
        default_type application/octet-stream;

        ##
        # Настройки SSL
        ##

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Удаление SSLv3, ссылка: POODLE
        ssl_prefer_server_ciphers включен;

        ##
        # Настройки ведения журнала
        ##
        журнал_доступа /var/log/nginx/access.log;
        журнал_ошибок /var/log/nginx/error.log;

        ##
        # Настройки Gzip
        ##

        gzip включен;

        # gzip_vary on;
        # gzip_proxyed любой;
        # gzip_comp_level 6;
        # gzip_buffers 16 8k;
        # gzip_http_version 1.1;
        # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

        ##
        # Конфигурации виртуального хоста
        ##

        включить /etc/nginx/conf.d/*.conf;
        включить /etc/nginx/sites-enabled/*;
}

и я следовал учебнику здесь чтобы он пересылал вещи в мое приложение Golang, добавив следующее в /etc/nginx/сайты доступны/ro и символически связывая это с /etc/nginx/sites-enabled/ro.

сервер {
        слушать 80;
        имя_сервера running-oaks.com;

        место расположения / {
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_set_header Хост $http_host;
                proxy_pass "http://127.0.0.1:8080";
        }
}

Если я использую curl на своем локальном ПК для доступа к моему серверу, я получаю страницу index.html, которую я хотел бы отправить на сервер. Моя команда curl просто завиток http://123.123.123.123, куда 123.123.123.123 заменяется фактическим IP-адресом моего удаленного сервера.

Однако попытка получить доступ к этому же IP-адресу с помощью моего веб-браузера просто показывает мне страницу Apache по умолчанию для Debian.Я удалил apache перед настройкой nginx, чтобы с надеждой избегать конфликтов. Как в случае с curl, так и в случае с браузером я вижу, что мое приложение Golang получает запросы и возвращает статус 200.

Так почему же мой браузер продолжает показывать мне страницу Debian?

я тоже поменял /var/www/index.html быть страницей nginx по умолчанию, хотя это тоже не исправило.

Рейтинг:0
флаг de

Проблема в том, что ваш запрос не соответствует вашему серверному блоку, но соответствует серверному блоку по умолчанию.

У тебя есть:

сервер {
        слушать 80;
        имя_сервера running-oaks.com;

Который будет соответствовать любому запросу, поступающему на порт 80 с именем хоста «running-oaks.com».

Из коробки Ubuntu включает в себя уже включенный файл сайта /etc/nginx/sites-enabled/по умолчанию который является символической ссылкой на /etc/nginx/доступные сайты/по умолчанию. Это определение сайта, которое предоставляет главную страницу Debian.

В этом конфигурационном файле есть блок сервера, который начинается так:

сервер {
        слушать 80 default_server;
        слушать [::]:80 default_server;

Этот блок не имеет server_name, но имеет default_server директива. Это означает, что любой запрос, поступающий на порт 80, который не соответствует другому блоку сервера, должен использовать этот блок сервера.

Поскольку в вашем запросе используется прямой IP-адрес, а не имя хоста, указанное вами в директиве server_name, ваш запрос соответствует серверу по умолчанию, а не вашему собственному.

Чтобы исправить это, вы можете удалить символическую ссылку в /etc/nginx/sites-enabled/по умолчанию и добавьте default_server директива для вашей линии прослушивания. Не забудьте перезапустить Nginx после этого.

(Добавление default_server является излишним, потому что, если есть только один сервер, он по умолчанию является сервером по умолчанию, но лучше указать это явно.)

Ответить или комментировать

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