代做单片机毕业设计网站,有没有学做家具的网站,重庆网站建设 夹夹虫,库存管理系统软件iis虽然已经有点过时#xff0c;但不少用户还在用#xff0c;故总结一下。
1. 安装iis
如果电脑没有自带iis管理器#xff0c;打开控制面板-程序-启用或关闭Windows功能#xff0c;勾选iis安装即可 2. 部署前端项目
打开iis#xff0c;添加网站#xff0c;物理…iis虽然已经有点过时但不少用户还在用故总结一下。
1. 安装iis
如果电脑没有自带iis管理器打开控制面板-程序-启用或关闭Windows功能勾选iis安装即可 2. 部署前端项目
打开iis添加网站物理路径指向前端打包后文件夹 此时浏览器打开http://localhost:3000即可正常访问但是输入其它路由刷新会404 ★解决iis部署后vue、react项目刷新404问题
安装url重写功能
下载地址https://www.iis.net/downloads/microsoft/url-rewrite 添加规则
下载安装后重启iis后找到站点进入URL重写模块添加空白规则 名称随意选择与模式匹配、通配符、* 添加两个条件不是文件不是目录 最后重写url指向index.html即可 重启站点刷新不再404
3. 部署node服务
安装iisnode功能
下载地址https://github.com/tjanczuk/iisnode/wiki/iisnode-releases 添加新站点指向node的部署包 在node的部署包下添加web.config文件 内容为
configurationsystem.webServer!-- indicates that the hello.js file is a node.js application to be handled by the iisnode module --handlersadd nameiisnode pathapp.js verb* modulesiisnode //handlers!-- use URL rewriting to redirect the entire branch of the URL namespaceto hello.js node.js application; for example, the following URLs will all be handled by hello.js:http://localhost/node/express/myapp/foohttp://localhost/node/express/myapp/bar--rewriterulesrule namemyappmatch url/* /action typeRewrite urlapp.js //rule/rules/rewrite/system.webServer
/configuration
修改app.js中的listen端口为process.env.PORT
// old
app.listen(3001, function () {console.log(服务器启动成功了端口是:3001)
})// new
app.listen(process.env.PORT||3001)重启api站点浏览器打开http://localhost:3001/test能正常访问 4. 前端反向代理
前端请求接口地址是http://localhost:3000/api/test 实际需要转发到http://localhost:3001/test
安装Application Request Routing功能
下载地址https://www.iis.net/downloads/microsoft/application-request-routing 开启反向代理
安装好重启iis打开Application Request Routing然后点击Server Proxy Settings…再勾选Enable proxy 添加代理规则
回到web站点添加空白规则与模式匹配通配符*api/* 重写URLhttp://127.0.0.1:3001/{R:2}勾选停止处理后续规则 为啥是{R:2}通配符测试因为我的后台没有api前缀如果后台有/api可以用{R:0} 规则顺序
api匹配规则需要置顶可以点击规则上下移动 至此重启站点打开http://localhost:3000/api/test也能访问 5. 前后端同一个端口部署
前面说了分离部署占用两个端口通过代理转发请求能不能共用一个端口
web站点添加应用程序物理路径指向 web站点URL重写保留一个刷新404的规则即可 api站点URL重写有两个规则一个是自己的node一个继承了父站点注意顺序 因为多了一层api应用程序node端接口也需要多加一层api前缀目前不知道指向app.js时如何去掉api这层只能后端同步加一层了打开http://localhost:3000/api/test能正常访问 同端口部署其实就是通过规则匹配到api跳走但这种方式不方便前后端单独更新程序需要整个重启而且部署时规则匹配容易出现问题有利有弊自行选择 5. 其它错误
Q1. iis文件夹权限不足
文件夹右键属性-安全-编辑-添加用户或组Everyone勾选所有权限 Q2. 500.19无法访问请求的页面 进入Framework64版本文件夹
cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319打开cmd执行unlock
C:\windows\system32\inetsrv\appcmd unlock config -section:system.webServer/handlersQ3. The iisnode module is unable to start the node.exe process. cmd执行
net stop was /y net start w3svc或者在web.config中指定node.exe的位置
iisnode watchedFiles*.js;node_modules\*;routes\*.js;views\*.jade nodeProcessCommandLineC:\Program Files\nodejs\node.exe/