Все, что я хочу сделать, это настроить сервер nginx для обслуживания ТОЛЬКО статических файлов. Этот сервер nginx находится за HAProxy, и HAProxy направляет все запросы статических файлов на этот сервер nginx.
Я уже создал запись subdomain: static.mysite.com в диспетчере DNS Linode, но я не уверен, что именно делать с файлом конфигурации nginx, вот что у меня сейчас:
wroker_process 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 60;
gzip on;
gzip_http_version 1.1;
gzip_comp_level 3;
gzip_types text/plain text/html text/css
application/x-javascript text/xml
application/xml application/xml+rss
text/javascript;
server {
listen 8484;
client_max_body_size 1M;
server_name www.mysite.com mysite.com;
access_log /home/www-data/logs/nginx_access.log;
error_log /home/www-data/logs/nginx_error.log;
location / {
index index.html;
}
location ~* /static/ {
autoindex on;
alias /home/www-data/mysite/static/;
access_log on;
}
location = /favicon.ico {
rewrite (.*) /static/favicon.ico;
}
location = /robots.txt {
rewrite (.*) /static/robots.txt;
}
}
}
Обратите внимание, что в настоящее время все запросы статических файлов (к www.mysite.com/static/...
) отображается на ресурсы, доступные в /home/www-data/mysite/static/...
. Аналогичным образом запрос на www.mysite.com/favicon.ico
отображается на /home/www-data/mysite/static/favicon.ico
.
Как мне изменить указанное выше, чтобы использовать поддомен для всех статических файлов? Например, static.mysite.com/...
отображается на /home/www-data/mysite/static/...
?
Используйте правило перезаписи в nginx.conf
местоположение ^ ~ / ~ sub / {
переписать ^ / sub /(.*) http://sub.example.com/1 доллар навсегда;
}