Назад | Перейти на главную страницу

Обслуживание статических веб-файлов через нестандартный порт

Я близок к развертыванию Джанго проект в производство. Я рассматриваю некоторые инфраструктурные решения. Что-то, что возникло, обслуживало статические файлы на другом сервере, например lighttpd.

Однако мы начинаем с одного выделенного сервера, поэтому наш единственный вариант - использовать нестандартный порт для веб-сервера статических файлов.

  1. Есть ли у этого приоритет? Т.е. Кто-нибудь "большой" это делает?

  2. Какой конкретный порт я должен использовать или избегать использования?

  3. Может ли кто-нибудь сказать о некоторых недостатках этого маршрута?

Вы получите максимальную совместимость с конечным пользователем, используя другой IP-адрес и TCP / 80, чем если бы вы использовали тот же адрес и что-то вроде TCP / 8080. Некоторые действительно ограничивающие корпоративные брандмауэры не позволяют подключаться к странным портам, даже к обычным, таким как TCP / 8008 или TCP / 8080. Если вас это не беспокоит, то привязки к общему альтернативному HTTP-порту должно быть достаточно для того, что вы пытаетесь сделать.

Я бы просто установил еще один виртуальный хост на том же веб-сервере, поэтому обслуживаю статический контент с "static.example.com", делая это изменение тривиальным в дальнейшем. Вы можете сделать это по-своему, но вы, вероятно, не увидите большого прироста производительности, но попробуйте:

  1. Настройка виртуального хоста приложения django на localhost: 8080
  2. настроить прокси-ядро иметь localhost: 8080 в качестве бэкэнда
  3. настроить виртуальный хост static.example.com в lighttpd

Есть ли у этого приоритет? Т.е. Кто-нибудь "большой" это делает?

Конечно, люди передают статический контент с другого сервера, я слышал, что YouTube хорошо разбирается в этом.

Какой конкретный порт я должен использовать или избегать использования?

Я бы не стал использовать порты, отличные от 80, но это только я .. :-)

Кто-нибудь может подумать о минусах этого пути?

  1. сложно и очень мало пользы, если вы все равно используете только один сервер приложений.
  2. все страницы Django должны проходить через прокси.
  3. тут надо спросить .. :-)