使用Nginx的通配符记录来处理自定义域

这是我的4,持续5小时的问题:

我已经设置了一个WordPress多站点实例,它将在domain.com,subdomain.domain.com和customdomain.com上处理网站.将有N个网站使用customdomain.com,所以我不想为每个网站创建记录.在服务器上,我在Apache面前有Nginx.

我想做的是在Nginx中设置通配符记录来处理所有自定义域.现在,它看起来像这样:

server {
    listen 80;
    server_name _;
    root /home/server_user/web/production;
    client_max_body_size 50M;
    client_body_buffer_size 128k;

    location / {
        access_log      off;
        proxy_pass http://localhost:8080;
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header Host $proxy_host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

}

通过此设置,它会将请求传递给Apache并提供动态内容,但会为所有静态内容返回404.如果我将’server_name’更改为’customdomain.com’,Nginx将再次开始提供静态内容.当我将’server_name’更改为’_’或任何其他全能模式时,Nginx就会落在它的脸上.

有任何想法吗?

解决方案(至少我的配置):

在通配符记录中,’listen’指令还应包含’default’:

listen 80 default;

不要添加’server_name’指令,因为这会导致事情以丑陋,意想不到的方式破坏.

道具到Max Cutler,帮助我解决这个问题.

dawei

【声明】:淮南站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。