2016-02-12 2 views
1

У меня есть приложение nodejs, размещенное на сервере ec2. в настоящее время у меня есть nginx, проксирование приложения и обслуживание статических файлов с одного и того же компьютера.nginx, обслуживающий статические файлы с другого сервера

по соображениям безопасности я внедряю еще один сервер, который будет служить только прокси, и основное приложение будет сидеть на другом экземпляре и будет иметь только внутренний от одного ip.

проксировании запросы к внутреннему примеру легко, но я не могу понять, как я могу служить статический файл, расположенный на другом сервере ...

location ~ ^/(images/|img/|javascript/|js/|css/|stylesheets/|flash/|med$ 
     root /usr/src/www/static; 
     access_log off; 
     expires 24h; 
    } 

Можно ли сделать что-то вроде:

 location ~ ^/(images/|img/|javascript/|js/|css/|stylesheets/|flash/|med$ 
     root http://172.10.10.10/static; 
     access_log off; 
     expires 24h; 
    } 

если да, то я должен реализовать другой сервер Nginx на приложение, чтобы работать с файлами, а просто проксировании с нового сервера?

ответ

0

В контексте nginx статические файлы всегда должны находиться в локальной файловой системе. Поэтому вам нужно будет сделать proxy_pass для «машины приложений». Возможно, вы захотите просто поместить приложение за nginx, а также на второй сервер, поэтому ваша машина «proxy» просто делает один прокси-пароль, и ему не нужно знать или заботиться о том, что статично, а что нет (если у вас нет причин для обеспечения необходимости их разделения на прокси-сервере верхнего уровня).

Это добавочное преимущество, что вы можете легко добавить больше серверов на свой уровень приложения и загрузить баланс между ними без каких-либо изменений на уровне прокси-сервера, за исключением преобразования вашего статического прокси-пароля в восходящий поток (или с помощью «следующего сервера»).

Смежные вопросы