Нет особого смысла в proxy_pass для CDN. Когда вы рассмотрите, что делает proxy_pass, это должно быть очевидно.
proxy_pass просто означает, что Nginx сообщает бэкэнду (CDN в вашем случае) извлекает ресурс и возвращает его мне, чтобы я мог передать его клиенту.
Так что в вашем случае происходит ...
- Клиент делает запрос на x.jpg
- Nginx разрешает местоположение CDN
- Nginx запрашивает CDN для x.jpg
- CDN отправляет x.jpg в Nginx
- Nginx получает и буферизует x.jpg и т. Д.
- Nginx пересылает x.jpg клиенту
Обратная поездка в CDN по сути является пустой тратой, поскольку Nginx все еще должен отправить файл клиенту. Гораздо лучше просто отправить его напрямую ...
- Клиент делает запрос на x.jpg
- Nginx получает x.jpg с локального диска
- Nginx отправляет x.jpg клиенту
Если вы хотите использовать CDN, вам следует перенаправить запрос на CDN ...
- Клиент делает запрос на x.jpg
- Nginx перенаправляет клиента на CDN
- CDN отправляет x.jpg клиенту
Очевидно, что вы не сможете выполнить тест 404 в случае перенаправления, поскольку Nginx больше не участвует в транзакции после перенаправления.