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

前端之家收集整理的这篇文章主要介绍了使用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,帮助我解决这个问题.

猜你在找的Nginx相关文章