在 Apache 之后安装 nginx 作为代理

在 Apache 之后安装 nginx 作为代理

如果我在 Debian wheezy 服务器上安装 nginx 作为代理,需要采取哪些步骤来更改我的 apache 配置,以便所有静态内容都由 nginx 直接传递?

我的服务器上已经运行了大约 250 个域,并考虑通过 nginx 重新路由所有内容来解决这个问题,apache2.2 无法使用比 1024 更强的 DH 密码来避免堵塞。

答案1

如果你想让 Nginx 背后的 Apache 作为代理和静态内容服务器,我看到两种解决方案:

1.您可以仅为静态内容创建新的子域,例如 static.yoursite.asd 。当然,它会要求你修改你的 DNS 记录(这里是如何做到这一点http://content.websitegear.com/article/subdomain_setup.htm)。在 Nginx 配置文件中,您需要有 2 个服务器块。一种用于提供静态内容,另一种用于将流量重定向到 Apache。以下是静态内容的服务器块的样子:

server {
    listen 80;

    server_name static.localhost;

    location / {
        root /path/to/static/content;
        # 404 if file does not exist
        try_files $uri $uri/ =404;
    }
}

下面是将流量重定向到 Apache 的示例服务器块:(假设您的 Apache 在端口 8000 上工作)

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    server_name _;

    location / {
        proxy_pass http://localhost:8000;
    }
}

2.您可以在 Nginx 上拥有一个服务器块,但使用两个不同的位置。它花费更少的精力,因为您不必修改 DNS 记录。假设您希望将静态文件放在 yoursite.asd/static/ 位置,并重定向到根位置 ( yoursite.asd/ ) 上的 Apache。

以下是提供静态内容的示例位置:

location /static/ {
        root /path/to/content;
        # we don't want to have static files only in folder "static" in 
        # root document, so let's rewrite it to our root document
        rewrite ^/static/(.*)$ /$1 break;
}

以下是将流量重定向到端口 8000 上的 Apache 的示例位置:

location / {
        proxy_pass http://localhost:8000;
}

相关内容