最近我一直在使用 Mono 2.10.5、.NET 4 和 MVC 3 以及 razor 视图。我现在使用配置了 nginx 和 fastcgi-mono-server4 的网站托管网站。虽然该网站尚未公开(直到达到理想状态才会公开),但我们已经测试了很多天,到目前为止一切似乎都运行良好。
因此,考虑到上下文,让我们来看看有时让我抓狂的问题:
- 我可以在不安全重启 fastcgi 进程的情况下更新网站内容(例如 dll)吗?当我这样做时,我的访客是否有可能出现短暂故障?
- 我该如何优雅地停止 fastcgi-mono-server?我从http://yojimbo87.github.com/2010/03/14/mono-startup-script.html作为基础,但它只会终止(发送 SIGTERM)fastcgi-mono-server 进程,而不会在 Global.asax 中调用 Application_End(这就是我所说的非正常关闭)。SIGHUP 也不起作用(尽管它也会终止服务器)
此外,我找不到可以关注 mono-fastcgi-server 的新闻或状态的页面,我唯一的参考资料教我如何设置服务器及其基本工作原理,但我不知道在哪里可以找到新版本和更改日志(甚至下载页面,到目前为止,我一直在使用 portage 安装 xsp 包,它随 fastcgi-mono-server 一起提供)。我发现http://kerrick.wordpress.com/2007/08/但是关于 fastcgi-mono-server 的最后一篇文章太旧了,这让我感到害怕。
如果我可以问最后一个问题,我如何以非特权用户身份运行 fastcgi-mono-server?我不敢尝试设置进程的 setuid,因为我不太确定 mono 是否会尊重 setuid 标志(还没有尝试过),最重要的是,我不确定 fastcgi-mono-server 是否在某些时候需要 root 访问权限来设置事物。我非常想尝试一些类似的东西,但由于我找不到有关此事的任何文档,所以我还没有做任何事情。显然,我非常绝望,因为服务器是以 root 身份运行的!!
先感谢您!
答案1
我也将开始一段新的冒险相似的设置,我们对此有类似的担忧。让我们多聊聊 ;)
我会尽量回答以避免新的问题,但不保证:
- 我认为,需要尝试一下,在常规 IIS 部署场景上更新时可以做类似的事情。了解 ASP.NET 动态编译可以帮助深入了解这一点。更新副作用总是可以最小化一切都取决于您的需求。
- 可以运行多个 fastcgi-mono-server 实例,仍在调查一些细节,监听不同的内部端口。我已经成功做到了这一点,但需要更多测试。
其他 2 个问题...
我也没有找到太多关于这个主题的新闻和文档,但我使用 fastcgi-mono-server、fastcgi-mono-server2 和 fastcgi-mono-server4 没有任何问题,而且和你一样,我使用的是 mono 2.10.5。把自己当成 asp.net+mono 世界的探险家吧。我会尝试在博客上更多地介绍我的发现,以便为更广泛的讨论做出贡献。
据我所知,fastcgi-mono-server 不需要以特权用户身份运行,也就是说不需要 root 访问权限。我还在进一步调查安全级别,因为在部署级别/运行我的应用程序时,我觉得我已经找到了一个稳定的解决方案。
希望这可以解答你的疑惑……还有我的疑惑。