g-wan中的配置文件(init.d)在哪里。另外我怎么摆脱'?'在运行php或c脚本的url中(我认为你需要在configure中更改它)?
答案 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
),包括handlers
和init.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工作。