这是我的 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;
}
}
Run Code Online (Sandbox Code Playgroud)
通过此设置,它将请求传递给 Apache 并提供动态内容,但为所有静态内容返回 404。如果我将“server_name”更改为“customdomain.com”,Nginx 将再次开始提供静态内容。当我将 'server_name' 更改为 '_' 或任何其他包罗万象的模式时,Nginx 就会崩溃。
有任何想法吗?
解决方案(至少在我的配置中):
在您的通配符记录中,“listen”指令还应包含“default”:
listen 80 default;
Run Code Online (Sandbox Code Playgroud)
不要添加“server_name”指令,因为这会导致事情以丑陋的、意想不到的方式中断。
支持Max Cutler帮助我解决这个问题。
| 归档时间: |
|
| 查看次数: |
16869 次 |
| 最近记录: |