一、Apache反向代理应用场景
假如我有一个API是用Node.js所写,在5000端口,而又想让用户通过80或者443端口(假定我们使用Apache作为静态web服务器)来访问指定API,这时就需要用到Apache反向代理。这里仅介绍一下centos 7.3 系统下的Apache反向配置,Apache的安装不再叙述。
二、通过80端口访问- 修改Apache配置文件,打开proxy相关模块。具体为:proxy_module 、proxy_http_module 、proxy_balancer_module(最后一个是负载平衡的,暂时用不上)。注意,在centos中可能这些模块默认已经打开,可以使用 httpd -M 查看。
- 增加或者修改虚拟主机配置 ,最好修改前使用cp命令备份。编辑时使用如下命令:
sudo vim /etc/httpd/conf.d/default-site.conf
。这里如果没有虚拟主机定义,在配置文件的最后增加以下代码,如果有,就修改对应内容。
Servername localhost
ProxyPreserveHost On
ProxyPass /token http://localhost:5000/token
ProxyPassReverse /token http://localhost:5000/token
- 检查、重启
apachectl configtest
sudo apachectl restart
三、通过443端口访问(https)
- 同80端口。修改Apache配置文件,打开proxy_module 、proxy_http_module 、proxy_balancer_module 模块。
- 改对应目录下的ssl.conf。对照修改以下内容:
Servername severname
ProxyPreserveHost On
ProxyPass /token http://localhost:5000/token
ProxyPassReverse /token http://localhost:5000/token
- 检查、重启(同上)
apachectl configtest
sudo apachectl restart