Перенаправление на URL субдомена с сохранением исходного URL и обслуживанием файлов с субдомена URL

Я хочу перейти на www.example.com и быть перенаправленным на subdomain.example.com/homepage без изменения URL-адреса с www.example.com.

Выгода, чем мои css и js, размещена на subdomain.example.com. Я борюсь с последней частью. Пока у меня есть это:

http {
    upstream meteor_server {
        ip_hash;
        server 192.168.0.24:88;
    }
    server {
        server_name www.example.com;
        location / {
            proxy_pass http://meteor_server/homepage/;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }
    }
    server {
        server_name subdomain.example.com;
        location / {
            proxy_pass http://meteor_server/;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }
}

Это позволяет мне получить доступ к поддомену, только когда я захожу на www.example.com, я получаю 404 с на каждом из файлов css и js, которые он пытается загрузить. Я знаю, что есть лучшие способы сделать что-то подобное, но это, кажется, самый чистый в нашем случае использования. Хотя я открыт для любых идей, решение с использованием nginx выгодно.

1 ответ

Исправление Nginx было бы неплохо, но я не уверен, было ли это особенно уместным при использовании nginx. Я не мог понять это, поэтому для любого спотыкающегося об этом - вот, как я решил это в метеоре с Железным Маршрутизатором.

Meteor.startup(function () {
  if (Meteor.isClient) {
  var hostnameArray = document.location.hostname.split(".");
    if (hostnameArray[0] === "www") {
      Router.route("home", {template: "www-homepage"});
    }
    else {
      Router.route("home", {template: "subdomain-homepage"});
    }
  }
}

Надеюсь, что это полезно для кого-то еще. Кредит кевинпетеру из этого выпуска GitHub

Другие вопросы по тегам