nginx 默认捕获所有配置

nginx 默认捕获所有配置

我们使用 nginx 提供静态内容,使用 apache 提供动态内容。

我已将默认服务器配置定义为:

#Set a default server that simply proxies all requests to apache
server 
{
    listen 80 default_server;
    server_name _;

    location / 
    {
        proxy_pass http://127.0.0.1:8080;
    }
}

如果由于某种原因 server_name 不匹配,那么将所有内容代理到 apache 的最佳方法是什么?

答案1

是的,这是最好的也是唯一明智的方法。您甚至可以完全省略服务器名称。

答案2

如果您使用 SSL,则需要为 default_server 提供一些额外的管道 - 证书和密钥(可以自签名)。

server {
    server_name _;
    listen 80 default_server;
    listen 443 ssl default_server;
    ssl_certificate <path to cert>;
    ssl_certificate_key <path to key>;
    location / 
    {
        proxy_pass http://127.0.0.1:8080;
    }
}

Nginx 将尝试在 IP/端口匹配的 default_server 上接受 SSL 连接。如果此类服务器缺少证书/密钥,nginx 将断开连接。它不会尝试其他服务器。所以不要忘记证书/密钥。

相关内容