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 实现反向 ...
随机推荐
- springMVC整合spring和hibernate4(适合于框架的搭建)
基础的东西不再详细说明,只在这里说明一下主要的配置文件,如何通过配置文件取得sessionFactory . 步骤: 1:在web.xml中引入springmvc的配置文件springmvc.xml( ...
- java内部类的继承
1.public class OuterInnerClass extends ClassA.ClassB{ public OuterInnerClass(ClassA a) ...
- Nginx作为静态内容服务器(Windows环境)
1.简单安装 1)下载 http://nginx.org/en/download.html 2)解压后的路径 E:\Study\nginx\nginx-1.7.6 3)执行nginx.exe,访问ht ...
- 动手学servlet(二) servlet基础
1.我们来试着向一个servlet提交一个表单,现在webcontent下新建一个login.html页面,其中action对应servelt类名,代码如下: <!DOCTYPE HTML PU ...
- python学习(三):matplotlib学习
前言:matplotlib是一个python的第三方库,里面的pyplot可以用来作图.下面来学习一下如何使用它的资源. 一.使用前 首先在python中使用任何第三方库时,都必须先将其引入.即: i ...
- Unity Shader : Ghost(残影) v1
前阵子组长给我提了个需求,要实现角色人物的残影.我百度google了一下,发现可以用两种方式实现这个效果:1.记录前几帧的人物位置,将其传入shader中,对每个位置进行一个pass渲染.2. 通过相 ...
- 查看Eclipse版本号的方法
查看Eclipse版本号的方法如下所示: 1:假设Eclipse已打开Eclipse的菜单栏: Help-->About Eclipse弹出框中会显示一排logo,点击eclipse的那个log ...
- SQO (标准查询运算符)方法 & Linq To Object
#region SQO (标准查询运算符) 方法 #region Where() Find() FindAll() FirstOrDefault()等方法 static void c01where() ...
- 多文件目录下makefile文件递归执行编译所有c文件
首先说说本次嵌套执行makefile文件的目的:只需make根目录下的makefile文件,即可编译所有c文件,包括子目录下的. 意义:自动化编译行为,以后编译自己的c文件时可把这些makefile文 ...
- Windbg 内存命令 《第四篇》
内存是存储数据.代码的地方,通过内存查看命令可以分析很多问题.相关命令可以分为:内存查看命令和内存统计命令.内存统计命令用来分析内存的使用状况. 一.查看内存 有非常丰富的内存查看命令,它们被容易为d ...