ichuan.net

自信打不死的心态活到老

nginx 配置技巧

这段时间因为折腾 VPS,学习了下 nginx 的配置。下面分享一些我觉得有用的配置,更多的配置参见 nginx 配置手册

不让以 IP 形式访问

一个 IP 下可能同时挂了好多站,别人直接用 IP 访问不定会访问到哪个站,还容易被人发现这个 IP 下挂了某些站。下面这个配置就是让用 IP 访问的人重定向到一个错误页面(下面是 google 404 页面):

server {
    listen 80 default_server;
    add_header Location http://www.google.com/404.html;
    return 301;
}

上例中 default_server 指的是如果没有找到对应域名的网站时用这个配置,用 IP 访问就属于这一种了。

让 www 域名跳转到主站

域名贵在短小,加上 www 访问简直就像乔布斯费尽心思降低 0.5mm 厚度的 iPhone 到中国后被贴上个 5mm 的屏幕膜一样。下面例子是如果访问 http://www.ichuan.net/a/b 会被重定向到 http://ichuan.net/a/b

if ($host = 'www.ichuan.net'){
    rewrite  ^/(.*)$  http://ichuan.net/$1  permanent;
}

媒体文件加缓存头

这个是从 nginx 官网找的代码,很方便:

if ($request_filename ~* \.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|mov)$){
    access_log   off;
    expires      30d;
}

意思是对这些后缀的文件,不记录访问日志,并让浏览器缓存 30 天。

aliasroot 的区别

这个一般用在 location 字段。假如是 location ^~ /static/ ,浏览器请求 /static/css/screen.css 时,如果你 location 里面写的是 alias /var/www/static/;,则 nginx 会去找 /var/www/static/css/screen.css 文件发给浏览器;但如果你写的是 root /var/www/static/;,nginx 则会去找 /var/www/static/static/css/screen.css 文件,也就是说 root 找文件时是不会忽略 location 后面的路径的。

先列这几个,以后有新的了再更新。

Comments