2015-06-15 2 views
0

Где находится файл конфигурации (init.d) в g-wan. Также как мне избавиться от '?' В url для запуска скрипта php или c (я думаю, вам нужно изменить это в настройке)?Где находится файл конфигурации в g-wan?

+0

**/etc/init.d ** файлы - это сценарии оболочки, которые отвечают на запуск, остановку, перезагрузку и перезагрузку команд для управления определенным сервисом. G-WAN предоставляет пример такого сценария: http://www.gwan.ch/faq#service – Gil

ответ

0

Не существует конфигурационного «файла» как такового. Например, порт и IP-адрес настроены как имена папок (например, 172.16.42.2:8080/...) в корневой папке gwan.

Сервлеты, написанные на php или C или независимо от того, что вы выберете, находятся в папке .../csp по пути IP: порт под папкой gwan. С G-WAN по умолчанию путь к сервлету начинается с '?' с последующим расширением имени сервлета и расширением (например, «.php»), а первому параметру предшествует «&», как 2-й параметр, с большинством веб-серверов.

Вы можете изменить практически любое, что вы хотите по URL-адресу, пути, специальным символам и т. Д. В обработчике, который вы также можете записать на C/C++ и т. Д. Обработчики находятся в папке .../handler в разделе IP: путь к порту в папке gwan. То, о чем вы конкретно спрашиваете, это форма перезаписи URL-адресов и может выполняться в обработчике с помощью простой функции замены строк (см. Примеры, которые поставляются с G-WAN).

Есть много примеров сервлетов в папке .../csp и несколько примеров обработчиков в папке .../handler. Скорее всего, вы можете выбрать среди них и изменить их в соответствии с вашими потребностями.

FYI, стандартное соглашение об именах, используемое с G-WAN для отключения чего-либо на уровне папок, должно предшествовать ему «_» (например, _0.0.0.0: 8080/...) и для отдельного файла чтобы быть отключенным, он добавляется с помощью _ _ (например, hello.c_).

На странице разработчиков G-WAN есть обработчик подключения URL-rewrite example, который (я думаю) делает то, что вы хотите. Конкретный код переписать входящий запрос URL (содержащий нет «?») С URL, который ссылается на конкретный G-WAN сервлет (и содержит «?») Выглядит следующим образом:

// rewrite /blog requests into /?blog requests 
xbuf_replfrto(read_xbuf, read_xbuf->ptr, read_xbuf->ptr + 16, "/blog", "/?blog"); 

См http://gwan.com/developers#tab2 для полный пример. Вам нужно будет создать аналогичный обработчик подключений (или просто скопировать код примера и изменить его в соответствии с вашими потребностями), а затем поместить этот код обработчика в путь .../обработчики по пути IP: port в корневой папке gwan.

Извините, я не могу быть более конкретным с примером PHP; До сих пор я выполнял всю свою работу G-WAN на C/C++.

+0

Так как же я могу избавиться от? В url – matt

+0

На данный момент я не на своем компьютере, но есть пример либо онлайн, либо в пакете gwan для изменения URL-адреса из/blog в /?blog.c или что-то в этом роде. Очень близко к тому, что вы хотите. Вы просматривали FAQ или API или разработчиков на веб-сайте gwan? – Kenigmatic

+0

Спасибо, я посмотрю. Но если у вас будет шанс, я буду признателен, если вы сможете дать пример или пример. Благодарю. – matt

1

Как объяснил Кен, нет файла конфигурации - но сценарии G-WAN (servlets, handlers), в том числе скрипты запуска init.c и main.c G-WAN, может изменить G-WAN по-умолчанию настройки ... даже динамически, в течение всего срока службы сервера, а иногда и по запросу.

Вот варианты, которые могут быть изменены перед тем G-WAN начинает прослушивание (они описаны в руководстве PDF и on the G-WAN Web site):

US_SERVER_DATA // global server pointer for user-defined data 
SERVER_SOFTWARE // "Server: G-WAN" HTTP response header 
SCRIPT_TMO  // time-out in ms running a script 
KALIVE_TMO  // time-out in ms for HTTP keep-alives 
REQUEST_TMO  // time-out in ms waiting for request 
MIN_SEND_SPEED // send rate in bytes/sec (if < close) 
MIN_READ_SPEED // read rate in bytes/sec (if < close) 
MAX_ENTITY_SIZE // maximum POST entity size 
QUERY_CHAR  // replace '?' by - _ . ! ~ * ' () 
USE_WWW_CACHE // enable static cache (default: off) 
USE_CSP_CACHE // enable servlet cache (default: off) 
CACHE_ALL_WWW // load all /www in cache (default: off) 
USE_MINIFYING // enable JS/CSS/HTML minifying (default: off) 

А вот как изменить характер по запросу по умолчанию ' ? ':

u8 *query_char = (u8*)get_env(argv, QUERY_CHAR); 
    if(query_char) 
    { 
     u8 old = *query_char; 
     *query_char = '!'; // "/!hello.c" instead of "/?hello.c" 
     printf("> changed query_char from '%c' to '%c' (%p)\n", 
      old, *query_char, query_char); 
    } 

Чтобы полностью удалить'? ' (вместо его замены) вам придется использовать обработчик соединения G-WAN, см. this example just doing what you want на вкладке «2».

Во многих случаях динамические настройки предпочтительнее фиксированных параметров, например, для адаптивных тайм-аутов (фиксированные таймауты оставляют сервер уязвимым для временных атак, например Slowloris).

+0

Я не хочу его менять. Я хочу удалить его. Нет ли директивного характера – matt

+0

Затем напишите обработчик G-WAN, чтобы добавить его для определенного списка динамических URL-адресов (которые будут использовать клиенты без указания каких-либо??). Это то, что делают другие серверы с двигателями регулярных выражений. – Gil

+0

u8 * query_char = (u8 *) get_env (argv, QUERY_CHAR); if (query_char) {u8 old = * query_char; * query_char = ''; // "/!hello.c" вместо "/ ?hello.c" printf ("> изменил query_char из '% c' в '% c' (% p) \ n", old, * query_char, query_char); } – matt

Смежные вопросы