Проксирование запроса на внутренний сервер

Бывает такое что по какой-либо причине неохота переносить файлы с картинками или файлы закачанные пользователями сайта. Или необходимо показать картинки со старого сайта 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://127.0.0.1:8080;
                        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)