为什么 nginx 配置文件内部的重定向效率低下?

为什么 nginx 配置文件内部的重定向效率低下?

有人能解释一下为什么 nginx 文档中这么说吗?为什么它“繁琐且无效”?

重定向至主站点

在共享主机使用期间,人们习惯仅使用 Apache 的 .htaccess 文件来配置所有内容,通常会遵循以下规则:

RewriteCond  %{HTTP_HOST}  nginx.org
RewriteRule  (.*)          http://www.nginx.org$1
to something like this:

server {
    listen       80;
    server_name  www.nginx.org  nginx.org;
    if ($http_host = nginx.org) {
        rewrite  (.*)  http://www.nginx.org$1;
    }
    ...
}

这是一种错误、繁琐且无效的方法。正确的方法是为 nginx.org 定义一个单独的服务器:

server {
    listen       80;
    server_name  nginx.org;
    return       301 http://www.nginx.org$request_uri;
}

server {
    listen       80;
    server_name  www.nginx.org;
    ...
}

答案1

因为每次你在第一个选项中访问网站时,它都会重新检查主机头是否重定向你。而在第二个选项中,它不会发生,并会将一些 CPU 周期发送到垃圾桶。

:)

相关内容