Конечно понимаю, что это может быть и не нужно никому, коль не нашел должного решения на просторах Интернета. Однако раньше, когда компьютеры были большими, а мы маленькими, были популярны так называемые домашние странички. У гордого индейца даже модуль под это дело есть - userdir.
Недавно решил индейца загнать в бекенд, а фронтендом настроить nginx. Так вот готового решения для организации фронтенда для nginx'а не обнаружил. Недолго думая, почесал подбородок и накатал следующую конфигурацию к nginx'у. Представьте испытанное мною счастье когда это заработало.
Итак, задача заставить в фронтенде отдавать содержимое из хомдира пользователя - /home/user/public_html. Запрос к которому в браузере выглядит как http://site.name/~user:
Собственно на этом всё :) Расширения для файлов обрабатываемых в фронтенде
можете придумать и добавить самостоятельно в регулярное выражение.
Естественно, что остальную конфигурацию придумываете самостоятельно - это лишь шаблон на заметку :)
... путешествие продолжается :)
Недавно решил индейца загнать в бекенд, а фронтендом настроить nginx. Так вот готового решения для организации фронтенда для nginx'а не обнаружил. Недолго думая, почесал подбородок и накатал следующую конфигурацию к nginx'у. Представьте испытанное мною счастье когда это заработало.
Итак, задача заставить в фронтенде отдавать содержимое из хомдира пользователя - /home/user/public_html. Запрос к которому в браузере выглядит как http://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;
}Собственно на этом всё :) Расширения для файлов обрабатываемых в фронтенде
можете придумать и добавить самостоятельно в регулярное выражение.
Естественно, что остальную конфигурацию придумываете самостоятельно - это лишь шаблон на заметку :)
... путешествие продолжается :)
Немає коментарів:
Дописати коментар