设置nginx只能通过一个子域来提供静态的服务

我所要做的只是设置一个nginx服务器来只提供静态文件。 这个nginx服务器位于HAProxy的后面,HAProxy将所有对静态文件的请求指向这个nginx服务器。

我已经在Linode DNSpipe理器中创build了一个子域:static.mysite.comlogging,但是我不知道如何处理nginxconfiguration文件,这里是我现在所拥有的:

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永久;

}