ubuntu下的apache端口反向代理

Author Avatar
carvenzhang 10月 05, 2015
  • 在其它设备中阅读本文章

前言

  在国庆期间,在阿里云上买了服务器和域名,自己这用node.js做了一个即时聊天系统,挂在2000端口上。
可是每次都在网址后面加一个:2000显得有点奇怪,也很麻烦,于是就想到了反向代理。
之前在管理社团服务器的时候,有过在nginx上捣鼓虚拟主机的经验,但是对于apache,我没有太多配置经验。

行动

  一开始当然是百度啦。好吧,我很少上谷歌,虽然我有师兄借我的代理服务器账号。
又是因为各种版本问题,我吃尽了苦头。

ubuntu 14.04 阿里云版
apache Apache/2.4.7 (Ubuntu)

直接说一下我完成的过程的。

  1. 一股脑为apache开启一大堆模块先。其实我也不知道那个模块是干什么的。但是我之所以弄了很久都没有弄好。
    就是因为我之前挑了一个教程里面值需要加载3个模块,结果访问网址一直提示服务器没有提供正确路径。
    后来一次性加载这些模块就成功了。
    a2enmod proxy proxy_ajp proxy_balancer proxy_connect proxy_ftp proxy_http
    
  2. 找到服务器配置文件的文件夹。ubuntu的都在/etc/apache2/下面

    cd /etc/apache2/sites-available/
    ls -all
    

    这时候应该可以看到*.conf文件,可能是000-default.conf,他就是默认的配置文件。
    我们可以新建一个配置文件,用来配置我们的反向代理端口

     vi chat.zjy.space.conf
    

    其实文件名可以随便起,后缀保留.conf就好,但我为了好识别,直接把我要代理到端口的网址作为文件名
    然后在这个hat.zjy.space.conf里写入一下代码。

     <VirtualHost *:80>
     ServerName chat.zjy.space
     ServerAlias chat.zjy.space
    
     ProxyPreserveHost On
     ProxyRequests Off
    
     <Proxy *>
     Order deny,allow
     Allow from all
     </Proxy>
    
     ProxyPass / http://42.96.203.150:2000/
     ProxyPassReverse / http://42.96.203.150:2000/
     </VirtualHost>
    

    其中,chat.zjy.space 是我要代理的网站,42.96.203.150是我服务器的ip,2000是我要指向的端口。
    这样,配置文件就写好了。

  3. 接下在退出vim后,仍然是在/etc/apache2/sites-available/文件夹里,运行a2ensite指令挂载这个配置文件,
    然后重启服务器。

    a2ensite chat.zjy.space.conf  #挂载配置
    service apache2 reload  #重启服务器
    
  4. 这时候已经可以通过http://chat.zjy.space 访问到 2000端口的网页。
    如果想要卸载这个代理,可以运行 a2dissite指令

    a2dissite chat.zjy.space.conf
    service apache2 reload
    

结尾

自己管理一个服务器的感觉还是很棒的,可以为所欲为。
现在阿里云正在搞云翼计划,买一个月的服务器只要9.9元,买一年的只要99元。
而域名首年便宜的只要5元