apache2反向代理node.js应用
在之前记录的随笔中,只是介绍了怎么在apache2中使用proxy模块,后来查到了一些资料,可以通过下面网址查看配置块的详细参数信息
http://man.ddvip.com/soft/apache2.0/sections.html
在服务器上面部署node.js应用的时候我遇到了下面的问题:
node.js应用监听的是3000端口,使用反向代理可以将80端口的所有请求代理到http://127.0.0.1:3000/去
但是当对node.js做维护的时候,停止监听3000端口是一个很好的选择,但是如果这个时候有人访问你的站点,该怎么办呢?
这个问题是前一段时间遇到的,知道昨天才真正下决心把它解决掉。
ok,我开始寻找解决方式,观察停止监听3000端口时服务器返回的错误代码是503,好了,有思路了,直接重定向503页面就可以了。
于是在Virtualhost *:80中添加了如下代码,是的服务器访问出现503错误的时候,跳转到专有界面
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.localhost
DocumentRoot "E:/phpworkspace/myblog"
ServerName www.myblog.lc
ServerAlias www.myblog.lc
ErrorLog "logs/dummy-host2.localhost-error.log"
CustomLog "logs/dummy-host2.localhost-access.log" common
<Directory "E:/phpworkspace/myblog">
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from All
</Directory>
#ProxyPass /article http://127.0.0.1:3000/article
#ProxyPassReverse /article http://127.0.0.1:3000/article
ErrorDocument 503 /index.html
ProxyPass / http://127.0.0.1:3000/
ProxyPassReverse / http://127.0.0.1:3000/
</VirtualHost>
本以为问题解决了,进行测试,服务器端停止监听3000端口,访问主机地址,结果出现的还是503错误
于是又去查找资料,仔细看了反向代理的介绍之后,恍然大悟,原来上面设置的503 都会被转到127.0.0.1:3000/index.html
可是我原来的应用下面就没有index.html文件
于是就想 能否在node.js监听的时候去访问3000端口,如果发现没有监听也就是出现503错误的时候访问的是apache默认的目录结构下的页面呢
于是终于找准了地方 在apache的默认www下创建error文件夹 在error里面创建一个index.html文件 用来显示503错误
于是上述配置文件信息修改为下面的内容
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.localhost
DocumentRoot "E:/phpworkspace/myblog"
ServerName www.myblog.lc
ServerAlias www.myblog.lc
ErrorLog "logs/dummy-host2.localhost-error.log"
CustomLog "logs/dummy-host2.localhost-access.log" common
<Directory "E:/phpworkspace/myblog">
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from All
</Directory>
#ProxyPass /article http://127.0.0.1:3000/article
#ProxyPassReverse /article http://127.0.0.1:3000/article
ErrorDocument 503 /error/index.html
ProxyPass /error/ ! 对error目录不使用代理
ProxyPass /error/e !
ProxyPass / http://127.0.0.1:3000/
ProxyPassReverse / http://127.0.0.1:3000/
</VirtualHost>
ok,问题解决,这样在服务器端没有监听3000端口的时候,服务器端会返回apache默认结构下的/error/index.html页面
apache2反向代理node.js应用的更多相关文章
- nginx反向代理node.js获取客户端IP
使用Nginx做node.js程序的反向代理,会有这么一个问题:在程序中获取的客户端IP永远是127.0.0.1 如果想要拿到真实的客户端IP改怎么办呢? 一.首先配置Nginx的反向代理 proxy ...
- 用Nginx反向代理Node.js
安装pm2 npm install pm2 -g ln -s /home/download/node-v8.11.1-linux-x64/lib/node_modules/pm2/bin/pm2 /u ...
- Nginx反向代理node,实现让静态文件在同一域
Nginx反向代理node,实现让静态文件在同一域 原文https://github.com/zhuangZhou/Blog/issues/4 不管是Vue还是React,还是传统的网站,与node服 ...
- apache2下部署node.js应用程序
版本:apache2.2+node.js(v.10.25) 系统环境:ubuntu 12.04(LTS) 32位 因为有些模块并没有开启 所以需要使用以下命令开启该模块 windows下则直接在htt ...
- apache2反向代理
1.安装 Apache2 sudo apt-get install apache2 2.重启服务器 sudo /etc/init.d/apache2 restart 3.虚拟主机配置 启用这几个模块 ...
- 记录下使用iis7代理node.js写的网站程序
昨天晚上一个学弟的紧急求救,说了自己接的单子做了一个网站,使用了自己熟悉的技术——node.js+mongdb,但当看到部署环境惊呆了,是 windows+sqlserver.这些都不是关键,关键是服 ...
- gerrit 配置 apache2 反向代理(转载)
Apache 2 Configuration To run Gerrit behind an Apache server using mod_proxy, enable the necessary A ...
- CentOS 7 安装 Nginx 反向代理 node
安装 nginx yum install epel-release yum install nginx 配置 nginx sudo vim /etc/nginx/nginx.conf, 改成下面配置: ...
- 使用 Node.js 搭建微服务网关
目录 Node.js 是什么 安装 node.js Node.js 入门 Node.js 应用场景 npm 镜像 使用 Node.js 搭建微服务网关 什么是微服务架构 使用 Node.js 实现反向 ...
随机推荐
- 如何使weblogic11g类似weblogic923一样统一使用一个boot.properties文件
如何使weblogic11g类似weblogic923一样 统一使用一个boot.properties文件 1.在weblogic域下创建文件boot.properties输入用户密码例如:usern ...
- DevExpress某些控件继承后的可编辑性
今天在使用DevExpress的BarManager菜单控件时,发现在进行继承时无法在继承的子类窗体中对其进行编辑与修改,另外像GridView也有类似的情形,后来查阅资料后,现在可通过DevExpr ...
- URAL 1416 Confidentia [次小生成树]
题意: 第一行n m代表n个点m条无向边. 接下来m行每行abc,代表ab之间有一条长度为c的无向边. 求: 最小生成树的边权和 次小生成树的边权和 #include<stdio.h> ...
- 本地搭建SVN服务器 局域网
http://blog.csdn.net/sunbaigui/article/details/8466310
- POJ 3207 Ikki's Story IV - Panda's Trick
Ikki's Story IV - Panda's Trick Time Limit: 1000MS Memory Limit: 131072K Total Submissions: 7296 ...
- cocos2d 3.0自定义事件答疑解惑
疑惑一:在事件分发中修改订阅者 ,对于这个的理解. 事件的分发是可以嵌套的,cocos2dx使用_inDispatch来保存当前嵌套的深度,当调用第一个dispatchEvent的时候,_inDisp ...
- android 多级下拉菜单实现教程
原创,如转载请标明链接:http://blog.csdn.net/q610098308/article/details/50333387 很多App,都有二级菜单出现,但android 本身实现的菜单 ...
- awk 解析maps文件中的地址
maps文件一般是这个样子: pi@raspberrypi:~ $ sudo cat /proc//maps 54b88000-54c8d000 r-xp b3: /lib/systemd/syste ...
- [Golang]Go Packages
---------------------------------------------------------------------------------------------------- ...
- MSP430F149学习之路——蓝牙模块
注意蓝牙模块的接法! #include <msp430x14x.h> ]; ; void int_clk() { BCSCTL1 &= ~XT2OFF; BCSCTL2 |= SE ...