前言

之前自己搞了个域名,然后发现域名默认映射到80端口,腾讯云又没有修改映射端口的功能。然后服务器又是和几个sx一起租的,于是只能想办法把发到80端口的请求分配到相应的项目里。当时有两个想法:自己写个中间件和用IIS,最后还是选了IIS,折腾好之后就没再管。结果最近升级了服务器,重新部署项目的时候发现基本上都忘光了。。于是就简单记录一下步骤。


iisnode

IIS什么的就不多说了,直接说主要用的东西,iisnode下载地址

另外还需要安装URL Rewrite

安装iisnode之后,可以用%programfiles%\iisnode\setupsamples.bat来安装一个例子,然后访问http://localhost/node

安装完之后,新建一个站点,监听80端口,配置好自己的域名。

web.config

web.config配置可以参考github中samples中的configuration.

<configuration>
<system.webServer>
<handlers>
<add name="iisnode" path="launch.js" verb="*" modules="iisnode" resourceType="Unspecified" requireAccess="Script" />
</handlers> <rewrite>
<rules>
<rule name="all">
<match url="/*" />
<action type="Rewrite" url="launch.js" />
</rule>
</rules>
</rewrite> <iisnode
nodeProcessCommandLine="&quot;C:\Program Files\nodejs\node.exe&quot;"
interceptor="&quot;C:\Program Files\iisnode\interceptor.js&quot;"
promoteServerVars="REMOTE_ADDR"/>
</system.webServer>
</configuration>

launch.js

因为bin会在url重写时被IIS屏蔽,因此不能直接把url重写到bin/www上,因此需要增加一个中间文件,或者修改bin目录的名字(当然是不推荐的)。

launch.js很简单,只需要require一下bin/www.

require('./bin/www');

接下来重启站点就可以了。

500.19

如果运行的时候出现如下错误:

500.19

配置错误 不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。锁定是默认设置的(overrideModeDefault="Deny"),或者是通过包含 overrideMode="Deny" 或旧有的 allowOverride="false" 的位置标记明确设置的。

这时候只要运行%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers 其中的handlers是报错的节点名字。


嘛,我是到这里就没有问题可以正常运行了。欢迎访问,虽然没有什么东西。

在IIS上运行node的更多相关文章

  1. 让nodejs在iis上运行

    node在IIS上运行的好处: Tomasz的回答是我见过最棒的: 使用iisnode模块在IIS中托管node.js应用程序来取代自托管node.exe进程的优势在于: · 进程管理. Iisnod ...

  2. 部署网站: 配置项目到iis上运行报目录错误

    配置项目到iis上运行报目录错误 以下三种方法可使用: 1.添加文件访问权限 everyone  (线上环境慎用) 2.重新注册iis 3.web.config 加一段话 在<system.we ...

  3. 将asp.net core2.0项目部署在IIS上运行

    原文:将asp.net core2.0项目部署在IIS上运行 前言:  与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是独立运行的.它独立运行在控 ...

  4. 记一次asp.net core 在iis上运行抛出502.5错误

    asp.net core 在iis上运行抛出502.5异常的部分原因以及解决方案 环境说明 已安装 .net core runtime 2.1.401 已安装 .net core windows ho ...

  5. 玩儿转物联网IoT - 在Beagle Bone Black上运行node.js 程序

    物联网(IoT)技术方兴未艾,智能手环,智能血压计,智能眼镜甚至智能鞋垫都开始进入我们的生活,各种智能设备层出不穷,世界已经到了一个"人有多大胆,地有多大产"的时代,不玩儿点物联网 ...

  6. 呵呵!手把手带你在 IIS 上运行 Python(转)

    原文:http://blog.csdn.net/yangzhencheng_001/article/details/40342449 公司的网站让我头痛死了.在众多前辈高手的带领下,一大堆的 CMD ...

  7. 如何在 Android 安卓手机上运行 Node.js 应用 | 如何在安卓手机配置node开发环境

    最近在学习js,由于没法随身携带笔记本电脑,在手机翻阅<JavaScript高级程序设计>时,时常想调试一下书中的代码.于是就有了,能否在手机上配置一个js开发环境.考虑到手机上的Chro ...

  8. 在sublime上运行node

    1.安装node,这个就简单了,不多说了.默认会安装在C盘,也可以自己设定盘符,如D.E 2.打开Sublime Text -> Tools -> Build -> Build Sy ...

  9. webstrom上运行node项目配置操作

    其实特别简单.... 去webtrom主界面找到下图的按钮,点击 点击之后弹框如下: 点击左上方绿色加号,如下图,点击node.js 点击之后,填写下图中内容: 点击应用,主界面的绿色开始按钮就可以用 ...

随机推荐

  1. 莫队+分块 BZOJ 3809

    3809: Gty的二逼妹子序列 Time Limit: 80 Sec  Memory Limit: 28 MBSubmit: 1634  Solved: 482[Submit][Status][Di ...

  2. CF540 C BFS 水

    '.'->'X' 前者走后变成后者,后者除了是终点不能再走.初始位置是X很傻的以为这样从初始点走出去后初始位置就变成不能走了,实际上是还能走一次的. 其他就是BFS,路上记得把路变成X就好了 太 ...

  3. 面试C++失败

    到今天,面试已经整整一周,一个offer没有收到,mmp. 无奈,痛苦,迷茫. 以前活的太安逸,太舒适了. 自以为是,异想天开. 要重新振作起来. 要不断学习,保持强大,未来之路才会越走越宽.

  4. CodeForces - 996B

    Allen wants to enter a fan zone that occupies a round square and has nn entrances. There already is ...

  5. 【洛谷 P4219】 [BJOI2014]大融合(LCT)

    题目链接 维护子树信息向来不是\(LCT\)所擅长的,所以我没搞懂qwq 权当背背模板吧.Flash巨佬的blog里面写了虽然我没看懂. #include <cstdio> #define ...

  6. c++刷题(6/100)最长上升子序列

    题目一:区间子数组个数 给定一个元素都是正整数的数组A ,正整数 L 以及 R (L <= R). 求连续.非空且其中最大元素满足大于等于L 小于等于R的子数组个数. 例如 : 输入: A = ...

  7. Vue SPA 首屏加载优化实践

    写在前面 本文记录笔者在Vue SPA项目首屏加载优化过程中遇到的一些坑及优化方案! 我们以 vue-cli 工具为例,使用 vue-router 搭建SPA应用,UI框架选用 element-ui ...

  8. WHY学习python?

    1.python更容易上手 2.功能库很多,不用重复造轮子 3.能干的事情很多(网站开发,爬虫,自动化运维,数据分析,游戏开发,人工智能) 网站开发:豆瓣,知乎 网站框架:django (姜狗) py ...

  9. ISG2018 web题Writeup

    0x01.命令注入 这题可以使用burpsuite扫出来,但是可能需要测一下. 得知payload为:i%7cecho%20gzavvlsv9c%20q9szmriaiy%7c%7ca%20%23'% ...

  10. java中String的==和equals的区别

    首先看代码1: public static void main(String[] args) { List<String> list=new ArrayList<String> ...