是的,没错,用lighttpd(念作:lighty)+mono可以在Linux上面跑Linux程序.
       lighttpd是一个轻量级服务器,设计1w+静态网页并发.刚开始把lighttpd配只好后,浏览静态网页,那个速度就像飞一样.据说豆瓣就是靠lighttpd支持2500+W每天的访问量.lighttpd还会支持FastCGI扩展支持更多的动态网页程序.我就是安装另一个mono的FastCGI,才使lighttpd可以跑ASP.NET 程序的.
       一.先来看看怎么安装lighttpd: (Linux下面安装软件有一个特点就是自己编译,然后make install.时间长了感觉很顺手的,刚开始不习惯.)
       1. 到 http://www.lighttpd.net/上面去下载源代码,然后解压缩,假设$lighttpd_src为源代码目录.
       2.编译,安装.
              假定安装路径为$install_root,下面用"/usr/local/lighttpd"为例.
             # cd $lighttpd_src
             # ./configure  --prefix=/usr/local/lighttpd
             先检查一下类库依赖,看看需要用到的类库是不是都有.要是没有的,看看少哪个,在ubuntu下就是apt-get一下,在我的openSuSE10.3下面就是"安装软件",输入名字,安装就行了.另外,要是用openSuSE 10.3的话,(我的机器)默认安装lighttpd 1.4.18的,那个也可以用的.要是不嫌麻烦的话,就装一个1.4.19.
             # make
             # sudo make install
             至此,lighttpd基本所算是安装好了,下来就是lighttpd的配置之类的.不想配置的话,lighttpd也可以用的.就看你的爱好了.反正我是不想整了,头都大了.
             lighttpd的启动是:
             # $install_root/sbin/lighttpd -f $lighttpd_src/doc/lighttpd.conf
             你可以把那个conf文件copy到一个你容易使用的地方,openSuSE默认的地方时/etc/lighttpd/lighttpd.conf.
             关闭lighttpd:(需要su权限)
             # killall lighttpd
        3.稍微配置一下lighttpd.conf文件,使之可以浏览静态网页.看看速度如何.
             打开文件,找到server.document-root这个节点,后面填上静态网页的路径,比如我的是server.document-root="/home/egmkang/Program/html/".
             然后 启动lighttpd,在浏览器里面输入localhost看看.一般是可以的,要是不幸的话,看看server.bind="192.168.1.110"里面填的是什么,一般是127.0.0.1或者localhost.
        二. 至此,lighttpd就可完全工作了,要是想跑ASP.NET程序的话,还得再加上mono的FastCGI 模块.下来我们安装xsp,并配置好conf文件.
         1.上mono的 官方网站去down一个xsp,这个是必须的,一般会是一个rpm包.
             安装这个rpm包的时候肯定会说少什么包,就在那个网页上面下载什么包.因为我是用YaST安装的,没注意这个事.SuSE用户可以看看这个更新源
http://en.opensuse.org/Additional_YaST_Package_Repositories#Mono
          2.下来配置 lighttpd.conf文件
             在文件里面添加进去:
            ################################################
            # fastcgi-mono-server2
            ################################################
            var.mono_dir = "/usr/"
            var.mono_shared_dir = "/tmp/"
            var.mono_fcgi_root = server.document-root
            var.mono_fcgi_applications = "/:."
            $HTTP["host"] == "192.168.1.110" {
            server.document-root = "/home/egmkang/Program/html/"
            fastcgi.server = (
                "" => ((
                        "socket" => "/tmp/fastcgi-mono-server",
                        "bin-path" => "/usr/bin/fastcgi-mono-server2",
                        "bin-environment" => (
                                "PATH" => "/bin:/usr/bin:" + mono_dir + "bin",
                                "LD_LIBRARY_PATH" => mono_dir + "lib:",
                                "MONO_SHARED_DIR" => mono_shared_dir,
                                "MONO_FCGI_LOGLEVELS" => "Standard",
                                "MONO_FCGI_LOGFILE" => mono_shared_dir + "fastcgi.log",
                                "MONO_FCGI_ROOT" => mono_fcgi_root,
                                "MONO_FCGI_APPLICATIONS" => mono_fcgi_applications
                        ),
                        # 这个为cgi模块的最大实例数目
                        "max-procs" => 1,
                        "check-local" => "disable"
                ))
            )
            fastcgi.map-extensions     = (
                            ".asmx" => ".aspx",
                            ".ashx" => ".aspx",
                            ".asax" => ".aspx",
                            ".ascx" => ".aspx",
                            ".soap" => ".aspx",
                            ".rem" => ".aspx",
                            ".axd" => ".aspx",
                            ".cs" => ".aspx",
                            ".config" => ".aspx",
                            ".dll" => ".aspx",
                            ".castle"=>".castle",
                            ".rails"=>".rails"
                            )
        }
        现在重新启动lighttpd,在"虚拟目录"下面放置一个 info.aspx看看能不能访问,要是能的话,就配置好了.要是不能的话,我基本上也没办法....汗这个配置文件就是我机器上面的.........
       这个是我的info.aspx的截屏  http://images.cnblogs.com/cnblogs_com/egmkang/127872/r_info.aspx.png  .
       3. 你刚才看到了.castle.对没错,我在这个服务器上面成功跑起来MonoRail自带的那个例子.
(注:MonoRail自带的例子的程序写的有一些问题的,就是文件名称的大小写问题,刚才我好好测试了一下那个工程,全部是文件名称的问题,他自己程序写的时候没注意.而且,光靠改文件名称的大小写还不能是网站完全跑起来,得把程序里面的名字修改了,要不然他一会儿访问Index.vm,一会儿又访问index.vm........)
           把MonoRail自带案例的文件复制到你的虚拟目录下面,修改Web.config文件名为web.config,./Views文件夹下面的Home文件夹为home,./Views/home/文件夹下面的Index.vm为index.vm.因为在Linux下面文件是区分大小写的,Win下面不区分.所以那个项目在Win下面能正常运行,在Linux下面不一定可以.
          (这一步我不知道可以省略不,因为没办法作对照实验....)把Castle的那些dll类库文件复制到mono的安装目录下面.在我的机器上面是/usr/lib/mono/2.0 .要是你的机器上面不是,那就whereis mono看一下.:lol
          这个是截屏: http://images.cnblogs.com/cnblogs_com/egmkang/127872/r_monorail.png
          园子把图片的尺寸都给改了,看得很模糊,大家将就一下.
       最后要说的是,lighttpd性能很好,这个不用我的废话,但是需要自己慢慢调试优化,达到最优的效果不是很容易的.(我现在还是一个菜菜.刚刚会用而已:lol)要是弄得好的话,也有可能用一两台破服务器实现2500+W/天的Hits访问量.不知道园子一天多少pv阿?貌似园子用的是8核CPU阿.......(貌似比较兴奋,以为1天2500W 的pv,后来一看不是500W 左右.特此订正.谢谢老赵.)

用lighttpd+mono在Linux上面跑ASP.NET程序相关推荐

  1. 5分钟无脑使用Linux虚拟机跑C/C++程序

    我前段时间操作系统的课设要用linux系统跑C语言的代码,我之前没用过Linux系统,学校发了一个几十页的"如何在Linux下运行C程序"的文档,根本看不完,我就在网上找,感受到了 ...

  2. 编写linux下跑马灯应用程序,01 arm11 led 跑马灯程序

    .text .globl _start _start: ldr r0, =0x70000000 orr r0, r0, #0x13 mcr p15, 0, r0, c15, c2, 4 ldr r0, ...

  3. Linux(CentOS 6.7)下配置Mono和Jexus并且部署ASP.NET MVC3、4、5和WebApi(跨平台)

    1.开篇说明 a. 首先我在写这篇博客之前,已经在自己本地配置了mono和jexus并且成功部署了asp.net mvc项目,我也是依赖于在网上查找的各种资料来配置环境并且部署项目的,而其在网上也已有 ...

  4. 为什么 Linux 上的 Asp.NET 5 需要 Kestrel ?

    咨询区 Freeman Helmuth: 当我在 Linux 上部署 ASP.NET 5 时,我试着了解整个 Web应用程序框架,所有的文档我都看过,包括这篇 http://docs.asp.net/ ...

  5. 在Linux系统中运行.net程序——Mono介绍

    Mono介绍 来源:互联网 收集:梦幻网络 本站网址:www.7139.com 点击数: <script src="http://www.7139.com/jsxy/GetHits.a ...

  6. 推荐两款支持在linux下运行ASP.NET网站的国产免费WEB服务器软件

    推荐两款支持在linux下运行ASP.NET网站的国产免费WEB服务器软件 1.kangle kangle web server是一款跨平台(windows/linux/bsd).功能强大.安全稳定. ...

  7. 一起谈.NET技术,在Mono 2.8上部署ASP.NET MVC 2

    我们知道Mono 2.8对ASP.NET MVC 2的完全支持,下面我们就来测试下在Mono 2.8上部署ASP.NET MVC 2应用程序.我的环境是Opensuse 11.3,通过以下命令部署好M ...

  8. 在Mono 2.8上部署ASP.NET MVC 2

    Mono 2.8发布:C#4.0和更好的性能,我们知道Mono 2.8对ASP.NET MVC 2的完全支持,下面我们就来测试下在Mono 2.8上部署ASP.NET MVC 2应用程序.我的环境是O ...

  9. Linux下部署ASP.NET服务连接oracle遇到的问题记录

    一.如何卸载MONO Q:mono是linux系统上跨平台软件,卸载它有两种方式: 1.知道mono安装路径,安装原来的路径直接覆盖安装(最为简单): 2.不知道mono安装路径,首先通过sudo f ...

最新文章

  1. Python学习笔记.OS学习笔记 OS操作系统(operating system)(二)程序和进程 输出进程号,工作目录最有用!
  2. 突发公共事件应急管理 新闻网站集
  3. 3月16日 winform
  4. 开闭原则coding
  5. pandas尾部添加一条_Numpy与Pandas
  6. 【转】介绍几个图论和复杂网络的程序库 —— BGL,QuickGraph,igraph和NetworkX
  7. execution 排除_使用SQL Server 2016 Live Execution统计信息对SQL查询性能进行故障排除
  8. 5 加盐_软化水设备怎么加盐
  9. 实现一个高效C++委托类(多分派)
  10. 【光学】基于matlab GUI迈克尔逊实验仿真【含Matlab源码 060期】
  11. D7000、60D、K5、E5的详细对比评价(转)_我是亲民_新浪博客
  12. onenote打开闪退平板_Win10系统下OneNote打不开或闪退如何解决
  13. GlusterFS企业级功能之EC纠删码
  14. JavaScript数据源版省市县三级联动
  15. 计算机交叉专业考研方向,与理工科交叉的计算机专业考研方向有哪些?
  16. mysql无法创建partition_mysql的partition分区
  17. Linux 生成so库文件并调用
  18. “新基建”来临,物联网发展按下快进键
  19. 【关系抽取】TPLinker:单阶段联合抽取,并解决暴漏偏差
  20. 日记:2011年6月深圳2周找工作总结

热门文章

  1. 矩阵加法(信息学奥赛一本通-T1124)
  2. 信息学奥赛C++语言:被3整除
  3. 信息学奥赛一本通C++语言——1023:Hello,World!的大小
  4. 用户权限 英文_伴鱼绘本终身VIP卡+自然拼读精品课,完课返461元!英文原版绘本...
  5. visual设计的界面发布到iis上显示不一样_享声 SOUNDAWARE 发布可“全民HIFI“的网播一体机 A1...
  6. 佳能打印机ip90 64位系统的驱动_佳能打印机如何安装 佳能打印机漏墨如何解决【详解】...
  7. python io密集型应用案例-Python中单线程、多线程和多进程的效率对比实验实例
  8. Uformer: A General U-Shaped Transformerfor Image Restoration
  9. 4-1k近邻算法(k-Nearest Neighbors)
  10. oracle 自带table,Oracle中table函数的使用详解