%20Proxy%2C%20%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D1%85%20%D0%B7%D0%B0%D0%B3%D0%BE%D0%BB%D0%BE%D0%B2%D0%BA%D0%BE%D0%B2%20%D0%B2%20%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5%20%D1%84%D0%B0%D0%B9%D0%BB%D1%8B.png)
Я пытаюсь добавить заголовки к статическим файлам. Как это сделать правильно?
Я пробовал вложение, но не получилось
server {
location / {
proxy_pass http://apache.backend.local/;
proxy_no_cache $http_pragma $http_authorization;
proxy_cache radish_cache;
proxy_cache_bypass $http_cache_control;
add_header X-Proxy-Cache $upstream_cache_status;
proxy_redirect off;
proxy_pass_header Set-Cookie;
proxy_ignore_headers Cache-Control Expires;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header Accept-Encoding '';
proxy_set_header Connection '';
proxy_set_header Referer $http_referer;
proxy_set_header Cookie $http_cookie;
proxy_hide_header X-Powered-By;
proxy_connect_timeout 59s;
proxy_send_timeout 600;
proxy_read_timeout 600;
proxy_buffer_size 64k;
proxy_buffers 16 32k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 64k;
location ~* \.(3gp|gif|jpg|jpeg|png|ico|wmv|avi|asf|asx|mpg|mpeg|mp4|pls|mp3|mid|wav|swf|flv|exe|zip|tar|rar|gz|tgz|bz2|uha|7z|doc|docx|xls|xlsx|pdf|iso)$ {
gzip_static off;
#add_header Pragma public;
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
access_log off;
expires 30d;
break;
}
location ~* \.(js)$ {
add_header Pragma public;
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
access_log off;
expires 10d;
break;
}
location ~* \.(css)$ {
add_header Pragma public;
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
access_log off;
expires 10d;
break;
}
}
}
также пробовал не вкладывать и включать конфигурацию прокси в каждом расположении, тогда получаю эту ошибку
"proxy_pass" cannot have URI part in location given by regular expression, or inside named location, or inside "if" statement, or inside "limit_except"
Я использую последнюю версию OpenResty
решение1
Завершающая /
часть оператора proxy_pass
— это «часть URI», упомянутая в сообщении об ошибке.
В вашем конфигурационном файле есть:
location / {
proxy_pass http://apache.backend.local/;
...
}
Перевод /
(из location
) в /
(из proxy_pass
оператора) бессмыслен, поэтому «часть URI» не нужна и ее следует удалить.
Когда вы пытались реализовать proxy_pass
в различныхрегулярное выражение location
блоков, "часть URI" вызвала сообщение об ошибке. Но поскольку вам не нужно proxy_pass
выполнять никакой трансляции URI, вы можете безопасно удалить завершающий /
.
Видетьэтот документдля получения подробной информации.