Привет всем, столкнулся с необходиомстью тестирования подключаемых шрифтов на сайтах через сервисы typekit.com и fonts.com
Суть сводится к подключению в html коде js скрипта fonts.com <script type="text/javascript" src="http://fast.fonts.net/jsapi/8163d577-49e6-9656-88c9-d8609ff327a1.js"></script> typekit.com <script type="text/javascript" src="//use.typekit.net/0cd8xtd.js"></script> В админке каждого из сервисов прописывается для каких доменов будет отдаваться данный шрифт, проверка производится по полю Referer. И вот собственно возникла проблема, необходимости тестирования данных сайтов из 3х разных мест, при этом в админке должен быть указан только один реальный домен. Что на данный момент: каждый раз приходится заходить в админку соотв сервиса и менять домен. Часто клиент не дает доступов и приходится дергать его, что очень неудобно. Хотелось бы избежать подобной ситуации, и в настройках сервисов прописать только localhost. Для этого я завернул на шлюзе все обращения к fast.fonts.net (93.184.220.188) и use.typekit.net (93.184.220.20) на nignx. # iptables -I PREROUTING -p tcp -s 192.168.0.0/16 -d 93.184.220.20 --dport 80 -j DNAT --to-destination 192.168.1.1:80 # iptables -I PREROUTING -p tcp -s 192.168.0.0/16 -d 93.184.220.188 --dport 80 -j DNAT --to-destination 192.168.1.1:80 Внутри локальной сети подняты два внутр домена, typekit.example.net и fonts.example.net и соотв следующий конфиг nginx server { listen 192.168.1.1:80; server_name _; location / { if ($http_referer ~ '^http://typekit.example.net/') { set $referer http://localhost; proxy_pass http://93.184.220.20:80; } if ($http_referer ~ '^http://fonts.example.net/') { set $referer http://localhost; proxy_pass http://93.184.220.188:80; } 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 Referer $referer; } } И все бы классно, за исключением двух моментов: 1. Многие сайты используют эти сервисы для размещения css, например, wordpress.org, fonts.com, typekit.com и т.д. Хотелось бы для всех сайтов, кроме typekit.example.net и fonts.example.net пропускать запросы без модификаций 2. Необходимо как то сделать исключения для наших внешних тестовых серверов (с внешними доменными именами). Т.е. например, если http_referer = project.domain.com, то мы ничего не делаем с запросом, а просто перенаправляем на соотв сервер (typekit.com или fonts.com) Читал, что http://wiki.nginx.org/IfIsEvil крайне не желательно использовать if в Location, может есть более элегантный способ решить данную задачу? _______________________________________________ nginx-ru mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx-ru
