0
Апач нужно настраивать так:

<VirtualHost localhost:8080>


А если так:

<VirtualHost *:8080>

То апач будет виден извне, на 8080-ом порту.
  • avatar
  • stD
0
proxy_pass http://localhost:8080/;
  • avatar
  • dedulay
0
Да, в nginx — proxy_pass localhost:8080/; Сейчас все норм работает. После даже уже динамические поддомены настроил.
  • avatar
  • dedulay
0
Дык Вы nginx ставили?
  • avatar
  • stD
0
Спасибо за хорошую статью, единственная актуальная статья которую мне удалось найти на 12.09.2016 число.

Настроил 4 сайта по разделу «Несколько сайтов» до этого настраивал по другим статьям не много кривовато было, но хоть как то работало. А после настройки по данной статье на отрез перестали работать все начали ссылаться на один и тот же сайт.

Разбирался около часа в чем дело. Я настраивал apache на 8080 порт.
И проблема была в том что у одного сайта был хост указан как:
<VirtualHost localhost:8080>
А у других:
<VirtualHost *:8080>

И в итоге все ссылались на сайт у которого хост был указан через localhost. С начало думал проблема в переменной localhost, оказалось нет все норм. Надо просто все сайты настраивать одинаково так:
<VirtualHost localhost:8080>
или так:
<VirtualHost *:8080>

и все будет работать! Главное что бы все сайты были одинаково настроены.

P.S. Сначала когда разобрался с проблемой думал просто уйти как обычно и не чего не написать, но в этот раз че то совесть замучила подумал вдруг у кого то тоже такая проблема будет и он так же как и я будет мучится. И так как это самая грамотная и актуальная статья из найденных мной решил все же оставить комент, в благодарность автору!
  • avatar
  • dedulay
0
Соответственно из веба отправляете 100 (одна команда), 101 (другая команда) и т.д.
  • avatar
  • stD
0
У меня готов код для большого кол-ва команд, планировал выложить его с новой статьёй:


#include "CyberLib.h"

char array_in[5] = {0,};
int cod_comand = 0;
unsigned long timme; 

byte d2 = 0;
byte d3 = 0;


void setup()
 {
   timme = millis(); 
   Serial.begin(57600);
   D2_Out;
   D2_Low;
   D3_Out;
   D3_Low;
 }


void loop() 
{   
  if (Serial.available()>3) // приём команд от сервера
   {
    if (Serial.read()=='Y')
     {
       for (byte i=0; i < 3; i++)
        {
           array_in[i] = Serial.read(); 
        } 
      
       if((array_in[0] =='+') && (array_in[1] =='=') && (array_in[2] =='Z')) 
        {
         int i = 0;
         delay_ms(1);

         memset(array_in, 0, sizeof(array_in));
       
         while(Serial.available())
           {
              delay_ms(1);
              array_in[i++] = Serial.read(); 
              if(array_in[i] == '\r' || array_in[i] == '\n')
                {
                  array_in[i] = 0;
                  break;
                }
           }

         sscanf(array_in, "%d",&cod_comand);
         memset(array_in, 0, sizeof(array_in));
    
         switch(cod_comand) 
           {
             case 100:
             D2_High;
             d2 = 1;
             clear_port();
             break;

             case 101:
             D2_Low;
             d2 = 0;
             clear_port();
             break;

             case 102:
             D3_High;
             d3 = 1;
             clear_port();
             break;

             case 103:
             D3_Low;
             d3 = 0;
             clear_port();
             break;


             default:
             clear_port();
             break;
           }          
       }
   
      else 
       {
         clear_port();
       }       
   }   
 }  


 if((millis()-timme) > 440) // интервал отправки данных  
   { 
     timme = millis();
     trans();  
   }   
} //END loop


void clear_port() // очистка буфера
 {
   for(int i=0; i < 64; i++) 
    {
      Serial.read();    
    } 
 }


void trans() // отправка данных серверу 
 {
   Serial.print('A'); 
   Serial.print(' ');   
   Serial.print(0);
   Serial.print(' '); 
   Serial.print(d2);
   Serial.print(' ');
   Serial.print(d3);
   Serial.print(' ');
   Serial.print('Z');   
   Serial.print('\n');  
 }


Получается 899 команд — от 100 до 999 (трёхзначное число).
  • avatar
  • stD
0
Спасибо большое, решил уже посылкой двух символов по событию, увеличив descript до 10 знаков, и поставив двойной свич

byte descript[10];
.......

if (Serial.read()=='Y') 
     {
      for (byte i=0; i < 10; i++)
        {
           descript[i] = Serial.read();  
             
                    } 
       
    if((descript[0] =='+') && (descript[1] =='=') && (descript[2] =='Z')) 
     {
      
      switch (descript[3])
       {
                  
         case '1':
         
         
           {
           switch (descript[9])
           {
            case 'a':
            registerWrite(0,0);
            d2 = 1;
            delay(250);
            registerWrite(0,1);
            break;

 

Сначала по кнопке уходит символ 1, потом а. итого на одно значение можно поставить 50 событий. Единственный прикол остался с тем, что дуина иногда ловит символы в обратном порядке, почему-то. То есть сначала -а, потом 1. Решил это просто продублировав действия дескрипта но уже в обратном порядке.
  • avatar
  • throttle
0
А не много ли? Кто-то заливает на ваш сервер стомегабайтные файлы?
  • avatar
  • stD
0
Хорошо, с портами разберусь.
Есть ещё такой момент:
При определенных запросах получал 413 (Request Entity Too Large)
Пришлось прописать в ngnix.conf
sendfile        on;
        #tcp_nopush     on;
        client_max_body_size 100M;

Правильно ли это? Или может есть какие нибудь рекомендации?
0
Поздравляю.
Зачем закрывать 81-й порт?

Просто так порты закрывать нельзя, многие из них используются. Это тема обширная и требующая вдумчивого изучения.
  • avatar
  • stD
0
Всё получилось, и работает на Ура! А как закрыть порт 81? И как закрыть входящий трафик по всем другим портам?
0
Через sudo
sudo stty -F /dev/ttyUSB0 cs8 57600 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts -hupcl
  • avatar
  • stD
0
Вот эту команду давали?
stty -F /dev/ttyUSB0 cs8 57600 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts -hupcl
  • avatar
  • stD
0
к ПК на линуксе с установленным ПО Arduino IDE подключен по USB ардуино. С открытом моинтором порта в Arduino IDE все норм работает, если закрыть монитор то начинает токо мигать с интервалом 3 сек
0
Что, как и куда у Вас подключено?
  • avatar
  • stD
0
если закрыть монитор порта, веб интерфейс не работает, светодиод подключенный к ардуино начинает токо мигать, в чем причина может быть такого поведени?
0
Для большого количества команд нужно внести ряд изменений. Я сейчас занят, однако если хотите, то я готов взяться за это. Пишите все детали на почту pccar@mail.ru
  • avatar
  • stD
0
К роутеру по UART-у прицеплена главная дуина, которая отсылает 3 набора команд (лучше-больше) другим дуинам, к которым подключено до 10 устройств. Конечные дуины сидят на portOne, porttwo и тд. То есть получается минимум 50 кнопок на каждую из команд.
типа —
case 'A': 
          portOne.println("force test  ");

         case 'a': 
         portOne.println("power test  ");
         break;  

         case 'B': 
         portOne.println("state test  ");
         break

При возможности менять дескрипторы, можно было бы забиндить их на допустим на Y+=P

if((descript[0] =='+') && (descript[1] =='=') && (descript[2] =='P')) 
  {
      switch (descript[3])
    {
       
      case 'a':
      portTwo.println("power test    ");


Y+=F —

if((descript[0] =='+') && (descript[1] =='=') && (descript[2] =='F')) 
  {
   switch (descript[3])
    {
      case 'a':
      portTwo.println("force test    ");

и т.д.
Просто слишком много конечных устройств)
Ну и соответсвенно кнопки уже в вебе вязать по группам на дескриптор.
Как то так.
0
Опишите конкретно, что хотите сделать?
  • avatar
  • stD