感谢agentzh在周末还能回复我的问题。
第一个问题:
我已经明白问题所在了。
第二个问题:
我也差不多了解了,其实我的业务需求是一台服务上,cpath可能相同,但业务逻辑的path不一样。现在来看只能起多个不同的 nginx 实例了。
第三个问题:
就是我写的那个兼容nginx和c++的框架了,他将运行在我们下一个游戏中,但是我现在不太确定他是否能胜任这个事情。
目前dao层还未写。
流程大概是route -> pcall -> dispatcher -> ctrl -> service -> dao -> entity -> view
在 2013年5月19日星期日UTC+8上午1时48分33秒,agentzh写道:
Hello!
2013/5/18 Xiaohui Sun:
> http请求会在一段时间后在access日志返回一个400的bad request,请问这是为什么?
>
> 以下是http请求:
>
> 192.168.0.21 - - [18/May/2013:18:21:36 +0800] "GET
> /route/?act=User.load&id=1 HTTP/1.1" 200 55 "-" "Mozilla/5.0 (Windows NT
> 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64
> Safari/537.31"
> 192.168.0.21 - - [18/May/2013:18:21:56 +0800] "-" 400 0 "-" "-"
>
这是正常现象,可以忽略。因为 chrome 等现代浏览器喜欢同时打开多个 TCP
连接进行尝试,但它最终只会使用其中一个连接,而其他连接未发送请求就直接关闭掉了,此时 nginx 便会记录 400. 更新版本的 nginx
会针对此种情形不进行日志记录。
> 另外我还想问的一个问题是:
> 像如果我同一台物理服务器需要运行多个vhost
>
> 这时我应该怎么办?
> openresty好多配置是只能写在http层的。
> 这时我只能多起几个nginx work来转发么?因为他们的package可能不一样。
>
你的多个 vhost 需要同时使用不同版本的同一个 Lua package?如果是的话,这在目前的 ngx_lua
模块实现中是做不到的,因为 Lua VM 是整个 server 级别共享的。你只能起多个不同的 nginx 实例了。
> 再说我那个不入流的小东西吧。
> 我的想法是每一个请求就是一个Request所以他每次都要new..业务逻辑每次也要new.其他的东西都是module....
>
不好意思,我没看明白你这一句话的意思。
Best regards,
-agentzh