收藏本站腾讯微博新浪微博

经典论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

蓝色理想 最新研发动态 网站开通淘帖功能 - 蓝色理想插件 论坛内容导读一页看论坛 - 给官方提建议

论坛活动及任务 地图和邮件任务 请多用悬赏提问 热夏来袭,选一款蓝色理想的个性T恤吧!

手机上论坛,使用APP获得更好体验 急需前端攻城狮,获得内部推荐机会 论坛开通淘帖功能,收藏终于可以分类了!

搜索
查看: 5745|回复: 0

[网络] windows下用apache或nginx替代IIS作为主服务

[复制链接]
发表于 2010-9-10 00:02:40 | 显示全部楼层 |阅读模式
相信有些服务器还是无可奈何的使用windows作为服务器,比如需要运行asp
可是要灵活rewrite和防盗链之类的,IIS可就麻烦了,一个不愿多碰的玩意
既然需要用,那就可以使用一个灵活的web服务在前面,后面放IIS,让它好好的退居二线。

可选方案有:Nginxapache

两者都可以提供足够的灵活性,如果还需要运行php,那不妨安装一些套件,比如:

  XAMPP - XAMPP是一款具有中文说明的功能全面的集成环境,XAMPP并不仅仅针对Windows,而是一个适用于Linux、Windows、Mac OS X 和Solaris 的易于安装的Apache 发行版。软件包中包含Apache 服务器、MySQL、SQLite、PHP、Perl、FileZilla FTP Server、Tomcat等等。默认安装开放了所有功能,安全性有问题,需要进行额外的安全设定。

  WampServer - WampServe集成了Apache、MySQL、PHP、phpmyadmin,支持Apache的mod_rewrite,PHP扩展、Apache模块只需要在菜单“开启/关闭”上点点就搞定,省去了修改配置文件的麻烦。

  AppServ - 集成了Apache、PHP、MySQL、phpMyAdmin,较为轻量。


我习惯用后者,用起来也还挺方便。

相对而言,apache的一些代理功能并非很灵活,用起来就有点复杂了。比如用正则匹配的方式条件性的进行代理,这个需要2.2.5版本以上才支持。nginx还是很不错的一个选择,代理功能非常强大,配置简洁,前端服务器的不二选择,各个大型网站都开始启用nginx,使用量风风火火的往上爬。

使用方法:

我们把IIS的默认网站停了,新建一个虚拟主机,端口号是88或者其它非80的未使用的端口即可,我们用这个作为处理asp的后端,别的不用它处理了。
当然了,下面是安装apache或者nginx。

apache和nginx作为前端,负责处理静态文件,并且把asp文件的请求交给后端。

apache的配置参考:

  1. NameVirtualHost *:80

  2. <Directory "E:/webapps/asp-test.aslibra.com">
  3.   DirectoryIndex index.htm index.html index.asp
  4.     Options MultiViews
  5.     AllowOverride None
  6.     Order allow,deny
  7.     Allow from all
  8. </Directory>

  9. <VirtualHost *:80>
  10.     ServerAdmin webmaster@aslibra.com
  11.     DocumentRoot "E:/webapps/asp-test.aslibra.com"
  12.     ServerName asp-test.aslibra.com
  13.     ErrorLog "logs/aslibra.localhost-error.log"
  14.     CustomLog "logs/aslibra.localhost-access.log" common

  15. #代理设置
  16.     ProxyRequests Off
  17.     <Proxy *>
  18.   Order deny,allow
  19.   Allow from all
  20.     </Proxy>
  21.     ProxyPassMatch .*\.asp http://127.0.0.1:88/
  22.     ProxyPassReverse / http://127.0.0.1:88/
  23. </VirtualHost>
复制代码


Nginx的配置参考:

  1. upstream aslibra {
  2.   server 127.0.0.1:88;
  3. }
  4. server {
  5.   listen 80;
  6.   server_name  asp-test.aslibra.com;

  7.   #启用Gzip
  8.   gzip_min_length  1000;
  9.   gzip_proxied     any;
  10.   gzip_types       text/javascript application/x-javascript text/css text/plain application/xml;
  11.   gzip_disable "MSIE [1-6]\.(?!.*SV1)";
  12.   gzip             on;
  13.   
  14.   root  E:/webapps/asp-test.aslibra.com/;
  15.   index index.asp index.htm index.html;
  16.   
  17.   #缓存控制
  18.   expires  1h;
  19.   location ~* \.(jpg|gif|png) {
  20.     expires  24h;
  21.   }

  22.   #防盗链
  23.   location ~* check_referer\.asp {
  24.     expires       0h;
  25.     proxy_set_header X-Real-IP $remote_addr;
  26.     proxy_pass http://aslibra;
  27.     access_log E:/Logfiles/nginx/0909_asp.log log_referer;
  28.     valid_referers none blocked server_names;
  29.     if ($invalid_referer) {return 403;}
  30.   }
  31.   #默认的
  32.   location ~* \.asp {
  33.     expires       0h;
  34.     proxy_set_header X-Real-IP $remote_addr;
  35.     proxy_pass http://aslibra;
  36.     access_log E:/Logfiles/nginx/0909_asp.log log_referer;
  37.   }
  38.   #禁止的
  39.   location ~* \.mp3 {
  40.     return 404;
  41.   }
  42.   access_log off;
  43. }
复制代码


后端的asp获得用户ip的方式:

  1. myip = Request.ServerVariables("HTTP_X_REAL_IP")
复制代码


nginx的windows版本还算稳定,不过,不适用 -s reload 的方式重新加载配置文件,也不适合开多个worker_processes,目前在使用上没有问题,还支持proxy_store,也就是用它在windows服务器上建立缓存服务器会不错,适合做图片服务器哦,把麻烦的IIS丢弃算了。

后续更新请关注原文:
http://www.aslibra.com/blog/post/nginx-apache-replace-iis.php

资料阅读:

1 Nginx
2 apache
3 常见的WAMP集成环境

[[i] 本帖最后由 hqlulu 于 2010-9-10 00:08 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|Archiver|手机版|blueidea.com ( 湘ICP备12001430号 )  

GMT+8, 2020-8-8 18:10 , Processed in 0.141242 second(s), 8 queries , Gzip On, Memcache On.

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表