Как должен выглядеть мой 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/).