У нас есть клиент с сайтом, работающим на Apache. В последнее время сайт испытывает повышенную нагрузку, и в качестве пробела мы хотим перенести весь статический контент сайта на домены без файлов cookie, например http://static.thedomain.com
.
Приложение не очень хорошо понято. Поэтому, чтобы дать разработчикам время внести изменения в код, чтобы они указывали свои ссылки на статический сервер содержимого ( http://static.thedomain.com
), я подумал о прокси-сайте через nginx и переписывании исходящих ответов, чтобы ссылки /images/...
переписывались как http://static.thedomain.com/images/...
.
Так, например, в ответе Apache на nginx есть бланк Headers + HTML. В HTML, возвращаемом из Apache, у нас есть <img>
теги, которые выглядят так:
<img src="/images/someimage.png" />
Я хочу преобразовать это в:
<img src="http://static.thedomain.com/images/someimage.png" />
Таким образом, браузер при получении HTML-страницы запрашивает изображения непосредственно с сервера статического контента.
Возможно ли это с помощью nginx (или HAProxy)?
У меня был беглый взгляд на документы, но ничего не выскочило на меня, кроме переписывания входящих URL-адресов.
Лучше всего использовать прокси-функцию и извлекать контент из соответствующего места, а не переписывать URL-адреса и отправлять перенаправления обратно в браузер.
Хороший пример прокси-контента выглядит так:
В этой конфигурации вместо того, чтобы перенаправлять запросы
static.domain.com
и ожидать, что браузер сделает другой запрос, nginx просто обслуживает файл с соответствующего локального пути. Если запрос является динамическим, то прокси подключается и получает ответ от сервера Apache (локального или удаленного), о котором конечный пользователь никогда не узнает.Надеюсь, это поможет
источник
proxy_pass
установить на сервер Apache, напримерproxy_pass http://172.16.3.1:80
? т.е. мы перемещаем публичный IP-адрес сайта на сервер nginx / CDN.