Nginx的好处相信我不必多说了,它作为一个相当轻量级的开源Web 服务器以及反向代理服务器而深受欢迎。越来越多的公司已经对它产生兴趣,包括我们公司的许多部门,利用它进行负载均衡和资源管理,之前写过一篇关于利用Nginx进行负载均衡的文章(http://www.cnblogs.com/liping13599168/archive/2011/04/15/2017369.html)。

本篇文章介绍怎样通过Nginx进行反向代理,并运行asp.net网站,测试环境我使用的是Win7系统。

首先,需要下载Nginx的安装包:

http://nginx.org/en/download.html,这里我下载最新版本:nginx/Windows-1.1.16

解压包可以看到目录:

nginx就是执行文件的入口,打开conf目录,可以看到nginx.conf文件,这个作为Nginx主要的配置入口:

server {
        listen       8000;
        server_name  127.0.0.1;

#charset koi8-r;

}

这里我将默认的80改成8000,作为nginx的Web服务器的默认端口,从这里我们可以这样理解,8000作为网站对外公布的Web端口,即代理服务的端口,现在,我就可以让它承载内网中的相关Web站点。

现在我在IIS服务器上添加一个新站点:

在上面部署一个asp.net网站,端口设置为88,88端口可以看作内网中的一个非开放的端口,网站放在目录 D:\WebApplication\WebApplication 中,现在修改nginx.conf中的配置为:

location / {
               root D:\WebApplication\WebApplication;
               index index.html index.htm default.aspx Default.aspx;
               proxy_pass http://127.0.0.1:88;  
                        proxy_set_header X-Real-IP $remote_addr;  
        }

其中,root参数可以设置对应网站的目录,index可以设置站点的默认页面,proxy_pass对于IIS中的88端口对应站点进行代理;

现在启动nginx,命令为:start nginx;而停止命令为:nginx –s stop

现在在浏览器中输入:http://127.0.0.1:8000/,显示:

OK!测试成功,这样就是实现了对IIS中站点的反向代理,当然您也可以通过对其他Web服务器进行反向代理,如Apache,Resin,Fastcgi等等。这里我想要分享一个Fastcgi代替IIS作为Web服务器的方案。

我们可能知道在Linux上Mono的部署运行,可以通过非IIS的方式进行运行,包括Apache,Resin,Fastcgi,Lighttpd等 等,现在我们就在Windows上利用Mono的Fastcgi模块实现在非IIS宿主情况下运行asp.net网站。

去Mono官方网站下载Mono for windows版本安装包:

http://www.go-mono.com/mono-downloads/download.html

下载包为mono-2.10.8-gtksharp-2.12.11-win32-1.exe,安装一下,在我们本地的GAC上包括了Mono的相关DLL;

继续创建一个asp.net站点,这次不需要把站点部署的IIS上面,这次利用nginx通过fastcgi进行反向代理。修改nginx.conf配置文件为:

location / {
    root Web;
    index index.html index.htm default.aspx Default.aspx;
        fastcgi_index Default.aspx;
       fastcgi_pass 127.0.0.1:9000;
       include fastcgi_params;
}

其中,Web是站点存放的目录,fastcgi_index作为fastcgi的默认页面,fastcgi_pass 设置它的站点,这里设置一个端口9000,实际上它是一个tcp协议的端口。

另外需要在fastcgi_params配置文件中添加这两行:

fastcgi_param  PATH_INFO          "";
fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

现在运行Mono-2.10.8 Command Prompt:

输入mono中的fastcgi-mono-server命令,可以使用两种方式:fastcgi-mono-server2和fastcgi-mono-server4,其中前者对应CLR2.0运行时宿主,后者对应CLR4.0运行时宿主:

fastcgi-mono-server2 /applications=/:. /socket=tcp:127.0.0.1:9000 /port=8000 /root="F:\nginx-1.1.16\Web"

执行一下,接着重新执行nginx,在浏览器再次输入:http://127.0.0.1:8000/default.aspx,显示:

显示正常!说明配置的asp.net站点已经在非IIS的情况下运行良好了:)

转载于:https://www.cnblogs.com/happyday56/p/3459708.html

利用Nginx+Mono+Fastcgi代替IIS对Asp.Net进行反向代理相关推荐

  1. windows下nginx+mono+fastCGI部署asp.net网站

    1,什么是nginx 简介 Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx ...

  2. ASP.NET Core 反向代理部署知多少

    引言 最近在折腾统一认证中心,看到开源项目[IdentityServer4.Admin:https://github.com/skoruba/IdentityServer4.Admin]集成了Iden ...

  3. 利用nginx的stream模块实现内网端口的转发代理

    nginx从1.9.0开始,新增加了一个stream模块,用来实现四层协议的转发.代理或者负载均衡等.比如在内网有一个mysql服务,想暴露到公网上去使用,就可以通过nginx代理的方式通过nginx ...

  4. Ubuntu系统Nginx 下载安装、配置、卸载,实现反向代理

    目录 一.Nginx下载安装(Ubuntu系统) 1.1nginx下载 二.Nginx启动 2.1启动nginx 2.2测试nginx是否启动成功 三.nginx配置 四.Nginx卸载 4.1删除n ...

  5. 【Asp.net Core】在 Linux 子系统中安装 nginx 并配置反向代理

    上一篇鸟文中,老周已经介绍过在 Ubuntu 子系统中安装 dotnet-sdk 的方法,本文老周给大伙伴们说说安装 nginx 服务,并配置反向代理.同样,老周假设你从来没有用过 Linux,所以老 ...

  6. 架构 Varnish+Nginx+PHP(FastCGI)+MYSQL5+MemCache

    说明:        我在设计系统架构时,进行了大胆的尝试,只用6台Web服务器,达到了可承受4000万PV(页面访问量)的性能: 抛弃了 Apache,因为它能承受的并发连接相对较低: 抛弃了 Sq ...

  7. 架构 Varnish+nginx+php(FastCGI)+MYSQL5+MenCache+MenC

    说明:        我在设计系统架构时,进行了大胆的尝试,只用6台Web服务器,达到了可承受4000万PV(页面访问量)的性能: 抛弃了 Apache,因为它能承受的并发连接相对较低: 抛弃了 Sq ...

  8. WEB请求处理二:Nginx请求反向代理

    上一篇<WEB请求处理一:浏览器请求发起处理>,我们讲述了浏览器端请求发起过程,通过DNS域名解析服务器IP,并建立TCP连接,发送HTTP请求.本文将讲述请求到达反向代理服务器的一个处理 ...

  9. WEB 请求处理二:Nginx 请求 反向代理

    上一篇<WEB请求处理一:浏览器请求发起处理>,我们讲述了浏览器端请求发起过程,通过DNS域名解析服务器IP,并建立TCP连接,发送HTTP请求.本文将讲述请求到达反向代理服务器的一个处理 ...

  10. Nginx反向代理与负载均衡等配置文件示例

    Nginx反向代理于负载均衡等配置文件示例 Nginx.conf配置文件 worker_processes 8;events {worker_connections 1024; }http {incl ...

最新文章

  1. NIO中那些奇怪的Buffer
  2. Javascript调试技巧整理
  3. Linux下软件安装方法汇总
  4. 专业写博一天------ArrayList 线程安全
  5. 服务器上flash不显示动画,win10电脑在线预览不能加载flash
  6. C#之out和ref区别
  7. WinForm 修改App.config不起作用(但是调试没有异常)
  8. 手机版qq邮箱一直连接服务器失败,手机qq邮箱网页版无法登录 求高手 QQ邮箱登不上去 显示找不到服务器15?请问我咋用不...
  9. 服务器上文件共享有哪些协议,访问局域网共享文件使用的是什么协议
  10. Spring-01-HelloWorld
  11. html5动态创建canvas,[canvas]通过动态生成像素点做绚丽效果
  12. litesql mysql 使用_Mysql 的使用方法
  13. java仿微信登录界面_android 界面设计潮流:仿微信5.2界面源码
  14. 为何很多 App 图标使用白色做底色?
  15. MagikEye将在CES上展示Invertible Light™图像传感器技术
  16. 1分钟快速了解MindMapper 与MindManager间的不同点
  17. 环形复杂度,McCabe方法是什么?
  18. 第六届 虚拟漫游 题目
  19. js数组交集、并集、差集
  20. arduino tft 方向_怎样将TFT 1.44与Arduino Nano结合使用

热门文章

  1. Cisco路由器上传和下载IOS
  2. 浏览器兼容性css样式写法
  3. Struts2体系介绍
  4. 【基础软硬件】IEEE 754规定的浮点数规则与发送与接收float数据的代码示例
  5. NESTEROV ACCELERATED GRADIENT AND SCALE INVARIANCE FOR ADVERSARIAL ATTACKS论文解读
  6. 学习Linux让我进入了知名企业 原
  7. Ubuntu 18.04修改默认源为国内源
  8. React骚操作——jsx遇到template-directive
  9. 多页Excel转换成PDF时如何保存为单独文件
  10. 洛谷 P2010 回文日期