• Можно ли сервером-балансером отдавать статический контент?

    @HeyAway Автор вопроса
    Ошибка -- плохо гуглил.

    Решение -- на сайт devacademy. Ссылку режут.
    Название: Балансировка нагрузки для NGINX
    Спасибо автору.



    Главный - master сервер

    Сервер, отвечающий за балансировку нагрузки, я называю главным, но он так же может выступать в роли обработчика запросов, как и два остальных. В этом примере допускается использовать главный сервер для обработки запросов.

    Другой сценарий: используем балансировщик нагрузки для обработки запросов. Мы применим небольшой трюк. Заменим следующие настройки на сервере:


    upstream balancer {
      server 192.168.1.100:80 ; 
      server 192.168.1.106:80 ;
    }
    
    server {
      listen 192.168.1.100:80;
      server_name yoursite.com;
      error_log /var/log/yoursite.com-error.log;
      location / {
          proxy_pass http://balancer;
      }
    
    }


    на

    server {
        access_log off;
        error_log /var/log/yoursite.com-error.log;
        listen 127.0.01:80;
        server_name  yoursite.com www.yoursite.com;
    
        location ~* .(gif|jpg|jpeg|png|ico|wmv|3gp|avi|mpg|mpeg|mp4|flv|mp3|mid|js|css|wml|swf)$ {
          root   /var/www/yoursite.com;
          expires max;
          add_header Pragma public;
          add_header Cache-Control "public, must-revalidate, proxy-revalidate";
        }
    
        location / {
          root   /var/www/yoursite.com;
          index  index.php index.html index.htm;
        }
    }
    
    upstream balancer {
      server 192.168.1.100:80 ; 
      server 192.168.1.106:80 ;
      server 127.0.0.1:80 ;
    }
    
    server {
      listen 192.168.1.100:80;
      server_name yoursite.com;
      error_log /var/log/yoursite.com-error.log;
      location / {
          proxy_pass http://balancer;
      }
    }



    Как вы видите, мы внесли два изменения: добавили виртуальный хост по адресу 127.0.0.1 и настроили его на обработку запросов на 80 порт. Затем добавили тот же сервер к вышестоящим серверам, то есть он будет использован для обработки запросов от Nginx запущенного на вашем localhost компьютере.

    На данном этапе балансировщик нагрузки Nginx должен работать без проблем. Конечно существует множество методов и вариантов его настройки, которые стоит изучить.
  • Можно ли сервером-балансером отдавать статический контент?

    @HeyAway Автор вопроса
    Да, разумеется.

    Проблема в том, что я не могу понять, почему он пропускает этот самый "сервер-балансер".
    Вот прям сейчас мониторю: контент отдается только с двух мелких серверов. "Большой" просто направляет, хоть он и прописан в upstream.

    Структура каталогов совершенно одинаковая.
  • Laravel + Vue + JWT: как добавить Authorization header?

    @HeyAway
    Если вам необходимо просто и всегда иметь токен в axios.defaults.headers.common['Authorization'], то вот, как вариант это решение:

    В main.js - там, где создаете экземпляр Vue:
    watch: {
        '$route': function(from, to) {
          axios.defaults.headers.common['Authorization'] = 'Bearer ' + Cookies.get('Token');
        }
      },
      created () {
        axios.defaults.headers.common['Authorization'] = 'Bearer ' + Cookies.get('Token');
      }


    Чуть подробнее:

    new Vue({
      el: '#app',
      router,
      components: { App },
      template: '<App/>',
      directives: {infiniteScroll},
      watch: {
        '$route': function(from, to) {
          axios.defaults.headers.common['Authorization'] = 'Bearer ' + Cookies.get('Token');
        }
      },
      created () {
        axios.defaults.headers.common['Authorization'] = 'Bearer ' + Cookies.get('Token');
      }
    })


    Таким образом, при любом изменении route - т.е, перехода по ссылкам, либо при обновлении страницы, ваш headers.common будет получать токен из кук. Но прошу заметить, это сработает, если вы подключаете axios в main.js, а не в компонентах.
  • Vue. Отправить данные из app.vue в child?

    @HeyAway Автор вопроса
    Добавил в main.js(где vue инстанс создается) "data". После этого $root заработал.

    Спасибо большое. Все довольно просто, оказывается.