g-wan中的配置文件在哪里?

时间:2015-06-15 16:09:00

标签: php web web-applications configuration g-wan

g-wan中的配置文件(init.d)在哪里。另外我怎么摆脱'?'在运行php或c脚本的url中(我认为你需要在configure中更改它)?

2 个答案:

答案 0 :(得分:1)

正如Ken解释的那样,没有配置文件 - 但是G-WAN脚本(Array ( [Home] => Array ( [Kids] => Array ( [For sleeping] => Array ( [0] => Sleeping Bags [1] => mattress [2] => mattress [3] => mattress [4] => Beds [5] => Beds [6] => Beds [..] servlets),包括handlersinit.c G-WAN启动脚本,可以修改G-WAN的默认设置......甚至可以在服务器的生命周期内动态修改,有时甚至可以按请求修改。

以下是在 G-WAN开始收听之前可以更改的选项(PDF手册和on the G-WAN Web site中记录了这些选项):

main.c

以下是如何更改默认查询字符'?':

 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)

要完全删除'?' (而不是替换它)您将不得不使用G-WAN连接处理程序,请参阅选项卡#2'连接处理程序'上的this example just doing what you want

在许多情况下,动态设置优于固定选项,例如自适应超时(固定超时会使服务器容易受到时间攻击,如 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); } )。

答案 1 :(得分:0)

没有配置&#34;文件&#34;本身。例如,端口和IP地址在根gwan文件夹下配置为文件夹名称(例如,172.16.42.2:8080 / ...)。

Servlet,无论是用php还是C编写的,或者你选择的任何东西,都在gwan文件夹下的IP:port路径下的... / csp文件夹中。对于G-WAN,默认情况下,servlet的路径以&#39;?&#39;开头。其次是servlet名称AND扩展名(例如&#39; .php&#39;),第一个参数前面是&#39;&amp;&#39;就像第二个 - 第n个参数是大多数Web服务器。

您可以在处理程序中更改您想要的关于URL,路径,特殊字符等的任何内容,您也可以使用C / C ++等编写处理程序。处理程序位于IP下的... / handler文件夹中:gwan文件夹下的端口路径。您具体询问的是URL重写的一种形式,可以通过简单的字符串替换函数在处理程序中完成(请参阅G-WAN附带的示例)。

... / csp文件夹中有许多servlet示例,以及... / handler文件夹中的几个处理程序示例。最有可能的是你可以选择并修改它们以满足你的需求。

仅供参考,与G-WAN一起使用以在文件夹级别禁用某些内容的典型命名约定是在&#39; _&#39;之前。 (例如,_0.0.0.0:8080 / ...),并且对于要禁用的单个文件,它后缀为&#39; _&#39; (例如,hello.c _)。

G-WAN开发人员页面有一个连接处理程序URL-rewrite example(我认为)可以执行您想要的操作。使用引用特定G-WAN servlet(并包含&#34;?&#34;)的URL重写传入请求URL(不包含&#34;?&#34;)的特定代码如下所示:

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

有关完整示例,请参阅http://gwan.com/developers#tab2。您需要创建一个类似的Connection Handler(或者只是复制示例代码并进行更改以满足您的需要),然后将Handler代码放在gwan根文件夹下的IP:port路径下的... / handlers路径中。

抱歉,对于PHP示例我不能更具体;到目前为止,我已用C / C ++完成了所有G-WAN工作。