Проксирование запроса на внешний сервер
Бывает такое что по какой-либо причине неохота переносить файлы с картинками или файлы закачанные пользователями сайта. Или необходимо показать картинки со старого сайта REMOTE-DOMAIN, но чтоб при этом адрес сайта в запросах был изменен на DOMAIN.
server { listen [[IP]]:80; server_name [[DOMAIN]]; root /home/[[DOMAIN]]/httpdocs/web; index index.php; access_log /var/log/nginx/[[DOMAIN]].access.log; error_log /var/log/nginx/[[DOMAIN]].error.log error; charset utf-8; #charset windows-1251; location / { index index.php; try_files $uri $uri/ /index.php?$query_string; } # Забираем файлы пользователей с другого сайта location ~ upload/ { expires 30d; log_not_found off; access_log off; add_header X-media-header media-header-content; proxy_pass http://[[REMOTE-IP]]:80; proxy_redirect off; proxy_hide_header "Cache-Control"; add_header Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0"; proxy_hide_header "Pragma"; add_header Pragma "no-cache"; add_header Last-Modified $sent_http_Expires; proxy_set_header Host [[REMOTE-DOMAIN]]; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; break; } }
Где
- DOMAIN - Наименование домена нашего сайта
- REMOTE-DOMAIN - Наименование домена на который проксируем запрос
- REMOTE-IP - IP Адрес внешнего домена (узнать можно так ping REMOTE-IP)