参考了一下几篇很给力的文章,在每篇文章中,都学到了解决遇到的问题的答案:

(1)用iisnode模块,让你的Node.js应用跑在Windows系统IIS中

(2)让IIS能够运行Nodejs

(3)记录一次使用iisnode部署node项目遇到的坑!

(4)NodeJS + express访问html、css、JS等静态资源文件

第(1)篇文章收获:

a.下载了IISNode.exe安装包。

b.了解需要在web.config中配置handler、iisnode、rewrite节点。

c.新建launch.js,作为nodejs web的入口。

第(2)篇文章收获:

a.到iisnode 安装目录 %programfiles%\iisnode\ 执行setupsamples.bat,通过iis可以成功访问到nodejs的项目,增强了继续死磕iisnode的信心。

b.修改setupsamples.bat,安装到其他站点下面(通过修改 set sitename="abcsiteweb").

第(3)篇文章收获:

a.iisnode的配置:

<iisnode
node_env="%node_env%"
nodeProcessCountPerApplication="1"
maxConcurrentRequestsPerProcess="1024"
maxNamedPipeConnectionRetry="100"
namedPipeConnectionRetryDelay="250"
maxNamedPipeConnectionPoolSize="512"
maxNamedPipePooledConnectionAge="30000"
asyncCompletionThreadCount="0"
initialRequestBufferSize="4096"
maxRequestBufferSize="65536"
watchedFiles="*.js;node_modules\*;routes\*.js;views\*.jade"
uncFileChangesPollingInterval="5000"
gracefulShutdownTimeout="60000"
loggingEnabled="true"
logDirectory="iisnode"
debuggingEnabled="true"
debugHeaderEnabled="false"
debuggerPortRange="5058-6058"
debuggerPathSegment="debug"
maxLogFileSizeInKB="128"
maxTotalLogFileSizeInKB="1024"
maxLogFiles="20"
devErrorsEnabled="true"
flushResponse="false"
enableXFF="false"
configOverrides="iisnode.yml"
nodeProcessCommandLine="C:\software\nodejs\node.exe"
promoteServerVars="REMOTE_ADDR" />

b.

自己通过观察发现:

C:\Program Files\iisnode\www\express\hello.js,发现:

配置路由,必须从根目录配置,去掉指定的端口:

路由从根目录配置例如:

app.get('/node/express/myapp/foo',function(req, res){}

端口(去掉原来指定的特定端口):
app.listen(process.env.PORT);

bin/www:

var port = normalizePort(process.env.PORT || '3030');
app.set('port', port); 修改为:
var port = normalizePort(process.env.PORT);
app.set('port', port);

var express = require('express');

var app = express.createServer();

app.get('/node/express/myapp/foo', function (req, res) {
res.send('Hello from foo! [express sample]');
}); app.get('/node/express/myapp/bar', function (req, res) {
res.send('Hello from bar! [express sample]');
}); app.listen(process.env.PORT);

静态文件如何处理呢?

第(4)篇文章,收获:

app.js代码如下:

const express = require('express')
const path = require('path')
const app = express() app.use(express.static(path.join(__dirname, 'public'))) app.listen(8080, () => {
console.log(`App listening at port 8080`)
})
其中最主要的部分是app.use(express.static(path.join(__dirname, 'public'))),该行代码是在express添加中间件,设置静态资源路径为public,所有的HTML、CSS、JS等文件都放在public下即可,后续代码迁移直接将public下的代码copy到Java Web的webRoot中就行

将public目录下的文件,搬迁到根目录下面。

以上如果都做到,基本就可以搞定iisnode的使用。

[IISNode] 如何在IIS7/8下,配置一个可以通过IIS访问NodeJS的web项目的更多相关文章

  1. Tomcat服务器中配置多个域名,访问不同的web项目

    先说一下在本地电脑怎么实现: 想要在一个tomcat下访问两个web项目时,可以通过添加虚拟host的方式来解决. 详细步骤如下: 1.将两个项目打包放入tomcat的webapps目录下: 2.修改 ...

  2. Linux下配置一个VNC服务器

    在Linux下配置一个VNC服务器,并设置2个用户,要求其中一个用户登录时不需要输入密码. 然后在客户端使用ssh+vncview的方式访问. 1确认vnc安装 2配置vncserver 3测试vnc ...

  3. [原创]IIS7.5下配置ASP+PHP环境及错误处理(0xc0000135)

    IIS7.5下配置ASP+PHP环境及错误处理(0xc0000135) http://user.qzone.qq.com/93701178/blog/1398155812 操作系统更新至Win7或Wi ...

  4. CAS (3) —— Mac下配置CAS客户端经代理访问Tomcat CAS

    CAS (3) -- Mac下配置CAS客户端经代理访问Tomcat CAS tomcat版本: tomcat-8.0.29 jdk版本: jdk1.8.0_65 nginx版本: nginx-1.9 ...

  5. Ubuntu Nginx下配置网站ssl实现https访问

    最近在看  HTTP权威指南   看到介绍了HTTPS的ssl,自己就动手测试了下,将步骤记录下 HTTPS简介 什么是HTTPS?百科是这样解释的.HTTPS(全称:Hyper Text Trans ...

  6. 如何在linux系统下配置无线网卡?【转】

    转自:http://www.jb51.net/LINUXjishu/61315.html 本文介绍在Linux 命令行界面中手动配置无线网卡的方法.目前流行的多数发行版都支持用图形界面的network ...

  7. Tomcat 下配置一个ip绑定多个域名

    原文:http://pkblog.blog.sohu.com/68921246.html 在网上找了半天也没找到相关的资料,都说的太含糊.本人对tomcat下配置 一ip对多域名的方法详细如下,按下面 ...

  8. 如何在linux环境下配置环境变量

    jdk下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 在linux环 ...

  9. Nginx下配置网站SSL实现https访问本站就是用的这方法

    本文出至:新太潮流网络博客 第一步:服务器环境,lnmp即Linux+Nginx+PHP+MySQL,本文中以我的博客为例,使用的是阿里云最低档的ECS+免费的Linux服务器管理系统WDCP快速搭建 ...

随机推荐

  1. template_DefaultType

    #include <iostream> using namespace std; template <typename T1,typename T2=int> class Te ...

  2. spark累加器、广播变量

    一言以蔽之: 累加器就是只写变量 通常就是做事件统计用的 因为rdd是在不同的excutor去执行的 你在不同excutor中累加的结果 没办法汇总到一起 这个时候就需要累加器来帮忙完成 广播变量是只 ...

  3. Synchronized性质

    Synchronized可重入性质 * 什么是可重入:指的是同一线程的外层函数获得锁之后,内层函数可以直接再次获取该锁,而不是释放当前的锁去重新获取一个锁,这是它的一个优点 * 好处:避免死锁,提升封 ...

  4. Good Article Good sentence HDU - 4416 (后缀自动机)

    Good Article Good sentence \[ Time Limit: 3000 ms\quad Memory Limit: 32768 kB \] 题意 给出一个 \(S\) 串,在给出 ...

  5. 验证码破解 | Selenium模拟登录简书

    使用超级鹰打码平台处理登录的文字点击验证码 import time from io import BytesIO from PIL import Image from selenium import ...

  6. Ubuntu下手动安装vscode

    Ubuntu下手动安装vscode1.下载vscodewget https://vscode.cdn.azure.cn/stable/553cfb2c2205db5f15f3ee8395bbd5cf0 ...

  7. 刷题记录:[HarekazeCTF2019]encode_and_encode

    目录 刷题记录:[HarekazeCTF2019]encode_and_encode 一.知识点 JSON转义字符绕过 php伪协议 刷题记录:[HarekazeCTF2019]encode_and_ ...

  8. 使用 ArcGIS Desktop 切瓦片

    目录 1.生成切片缓存切片方案 2.切瓦片 1.生成切片缓存切片方案 ArcGIS有默认的切片方案,如果需要自定义切片规则,需要先生成一个切片方案. 打开ArcMap,打开 工具箱(Tools Box ...

  9. 简述 IntentFilter(意图过滤器)

    1.什么是IntentFilter ? IntentFilter翻译成中文就是“意图过滤器”,主要用来过滤隐式意图.当用户进行一项操作的时候,Android系统会根据配置的 “意图过滤器” 来寻找可以 ...

  10. Nginx返回固定json或者文本格式的方法

    在系统还没有做集群的情况下,直接重启项目时刚好用户在使用的话,一般都会受到投诉,那么使用nginx返回类似“系统维护”的提示信息并且提前在应用上面做通知才是合适的做法 那么记录一下nginx里面的配置 ...