Я пытаюсь настроить действительно простую вещь:
используйте Nginx для прослушивания порта 8080 и перенаправления всего на внутренний хост с портом 80. На данный момент это моя конфигурация:
server {
listen 8080;
server_name publichost;
location / {
proxy_set_header Host $http_host;
proxy_pass http://app1;
}
}
server {
listen 80;
server_name publichost;
location / {
proxy_set_header Host $http_host;
proxy_pass http://app2;
}
}
Все идет нормально. Теперь, когда я открываю http: // publichost: 8080 он работает, и браузер показывает сайт index.html.
Но теперь каждая ссылка на ресурс в этом index.html пытается загрузить файлы из app2
<link rel="stylesheet" type="text/css" href="http://publichost/static/styles.css">
в этом есть смысл, поскольку прокси-сервер пересылает все запросы с портом 8080 в мое приложение1 и использует внутренний порт 80, а каждый запрос с портом 80 направляется в приложение2.
У меня вопрос: как настроить прокси-сервер nginx, чтобы он работал? Я хочу иметь другое веб-приложение, доступное через порт 80 по умолчанию.
Уведомление Возможно, важно отметить, что это приложение magento2, которое хранит свой базовый URL в базе данных. Поэтому я должен один раз установить его соответствующим образом и не должен его менять. Затем Magento генерирует URL-адреса для таких ресурсов, как css, javascript и изображения с этим базовым URL-адресом.
Вероятно, это зависит от приложения.
Иногда приложение отвечает на заголовок (IE 'x-script-name' для таких фреймворков, как Django) или имеет собственный механизм для перезаписи URL-адресов (VirtualHostMonster IE Plone). Иногда у них просто есть настройка в приложении.