Как должен выглядеть мой nginx.conf для обслуживания статического контента

У меня есть следующий контент в моем nginx.conf а все остальное как есть

server {
    listen       8081;
    server_name  localhost;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    #location / {
        #root   html;
        #index  index.html index.htm;
    #}

    location = /console {
        proxy_pass http://localhost:7001/main/console;
        proxy_set_header        Host             $host;
        proxy_set_header        X-Real-IP        $remote_addr;
        proxy_set_header        X-Forwarded-For  $proxy_add_x_forwarded_for;
        auth_basic "Admin Area";
        auth_basic_user_file /etc/apache2/.htpasswd;
    }
}

Теперь, когда я запускаю http://localhost:8081/console он успешно запускает веб-страницу и даже запрашивает пароль.

Но в этом месте есть статический контент /main/resources/org/nett/main/images/jquery-3.1.1.min.js

Когда я нажимаю на это, он бросает 404, Что должно быть в моем nginx.conf служить статическим контентом внутри /main/resources/org/nett/main/images/ папка?

1 ответ

Решение

Вы заметите, что расположение статического контента, /main/resources..., не соответствует ни одному из ваших местоположений., resources не под /main/consoleи, следовательно, нет никакого способа получить к нему доступ под вашим существующим proxy-pass место нахождения.

Пересмотрите, нужно ли вам изменить путь вашего прокси. Это может быть сделано, но требует дополнительной настройки. Если вы просто перенаправить / в 7001:/тогда, когда данные в /main/console относится к /main/resources, который также будет иметь действительный путь прокси через nginx.

Если ваше определение "работа" означает /console карты для 7001/main/consoleвам нужно будет расширить это определение, чтобы рассмотреть также, как вы хотите отображать запросы в /main/<anythingelse>, больше из которых, возможно, еще предстоит раскрыть. Вам также придется обрабатывать переписывание ссылок на себя, которые отправляет приложение (например, если от /main/console, это будет та же проблема, что и вещи под /main/resourcesпотому что оно тоже не совпадает /console, Перезапись URL-адресов на прокси-сервере должна выполняться только с приличным пониманием регулярных выражений и http и только с искренней и практической готовностью к RTFM. это сложно.

Кстати, если вы пытаетесь добавить базовую аутентификацию ко всему, что включено 7001убедитесь, что вы также зашифровали ваше соединение (HTTPS), в противном случае ваши учетные данные в сети являются открытым текстом ( http://mark-kirby.co.uk/2013/how-to-authenticate-apis-http-basic-vs-http-digest/).

Другие вопросы по тегам