Конечно понимаю, что это может быть и не нужно никому, коль не нашел должного решения на просторах Интернета. Однако раньше, когда компьютеры были большими, а мы маленькими, были популярны так называемые домашние странички. У гордого индейца даже модуль под это дело есть — userdir.
Недавно (июнь, 2009) решил индейца загнать в бекенд, а фронтендом настроить nginx. Так вот готового решения для организации фронтенда для nginx'а не обнаружил. Недолго думая, почесал подбородок и накатал следующую конфигурацию к nginx'у. Представьте испытанное мною счастье когда это заработало.
Итак, задача заставить в фронтенде отдавать содержимое из хомдира пользователя — /home/user/public_html. Запрос к которому в браузере выглядит как site.name/~user:
Собственно на этом всё :) Расширения для файлов обрабатываемых в фронтенде
можете придумать и добавить самостоятельно в регулярное выражение.
Естественно, что остальную конфигурацию придумываем самостоятельно — это лишь шаблон на заметку :)
… путешествие продолжается :)
Недавно (июнь, 2009) решил индейца загнать в бекенд, а фронтендом настроить nginx. Так вот готового решения для организации фронтенда для nginx'а не обнаружил. Недолго думая, почесал подбородок и накатал следующую конфигурацию к nginx'у. Представьте испытанное мною счастье когда это заработало.
Итак, задача заставить в фронтенде отдавать содержимое из хомдира пользователя — /home/user/public_html. Запрос к которому в браузере выглядит как site.name/~user:
location ~ ^/~([^/]*)/(.*\.(bmp|jpg|jpeg|gif|ico|png|css|doc|txt|js|zip|iso|tgz|gz|rar|bz2|7z|xls|exe|pdf|ppt|tar|wav|avi|rtf|mp3|mp4|mov|mpeg|mpg)) {
access_log /var/log/nginx/access-frontend.homedir.site.name.log;
alias /home/$1/public_html/$2;
expires 5d;
limit_rate 50k;
}
location ~ ^/~([^/]*)/(.*) {
access_log /var/log/nginx/access-backend.homedir.site.name.log;
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_pass http://127.0.0.1:60080;
proxy_redirect off;
}
location ~* ^.+\.(bmp|jpg|jpeg|gif|ico|png|css|doc|txt|js|zip|iso|tgz|gz|rar|bz2|7z|xls|exe|pdf|ppt|tar|wav|avi|rtf|mp3|mp4|mov|mpeg|mpg)$ {
access_log /var/log/nginx/access-frontend.site.name.log;
expires 5d;
limit_rate 50k;
if ($http_user_agent ~ FDM|Download) {
limit_rate 50k;
}
}
location = / { rewrite . /index.php last; }
location / {
access_log /var/log/nginx/access-backend.site.name.log;
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_pass http://127.0.0.1:60080;
proxy_redirect off;
}Собственно на этом всё :) Расширения для файлов обрабатываемых в фронтенде
можете придумать и добавить самостоятельно в регулярное выражение.
Естественно, что остальную конфигурацию придумываем самостоятельно — это лишь шаблон на заметку :)
… путешествие продолжается :)