CabloyJS也支持采用Apache服务器作为反向代理,配置步骤如下:

1. 项目配置

CabloyJS默认采用Nginx,如果要使用Apache,那么需要在项目配置中进行标明

{project}/src/backend/config/config.prod.js

  1. 1module.exports = appInfo => {
  2. 2 const config = {};
  3. 3 ...
  4. 4 config.proxyProvider = 'apache';
  5. 5 ...
  6. 6};

2. 启用Apache模块

使用a2enmod命令启用Apache模块,或者直接在httpd.conf文件中启用(删除注释字符#即可)

/etc/apache2/httpd.conf

  1. 1LoadModule proxy_module libexec/apache2/mod_proxy.so
  2. 2LoadModule proxy_http_module libexec/apache2/mod_proxy_http.so
  3. 3LoadModule proxy_wstunnel_module libexec/apache2/mod_proxy_wstunnel.so
  4. 4LoadModule remoteip_module libexec/apache2/mod_remoteip.so

3. 虚拟主机配置

/etc/apache2/extra/httpd-vhosts.conf

  1. 1<VirtualHost *:80>
  2. 2 ServerAdmin webmaster@localhost
  3. 3 DocumentRoot "/path/to/project/dist/web"
  4. 4 ServerName localhost
  5. 5 ServerAlias localhost
  6. 6 ErrorLog "/private/var/log/apache2/localhost-error_log"
  7. 7 CustomLog "/private/var/log/apache2/localhost-access_log" common
  8. 8
  9. 9 <Directory "/path/to/project/dist/web">
  10. 10 Options FollowSymLinks Multiviews
  11. 11 MultiviewsMatch Any
  12. 12 AllowOverride None
  13. 13 Require all granted
  14. 14 </Directory>
  15. 15
  16. 16 ProxyRequests Off
  17. 17 ProxyPreserveHost On
  18. 18
  19. 19 RemoteIPHeader X-Forwarded-For
  20. 20 RemoteIPInternalProxy 127.0.0.1
  21. 21
  22. 22 RequestHeader add X-Forwarded-Proto "http"
  23. 23 RequestHeader add X-Apache-Proxy "true"
  24. 24
  25. 25 ProxyPass /api http://127.0.0.1:7102/api
  26. 26 ProxyPassReverse /api http://127.0.0.1:7102/api
  27. 27 ProxyPass /socket.io ws://127.0.0.1:7102/socket.io
  28. 28 ProxyPassReverse /socket.io ws://127.0.0.1:7102/socket.io
  29. 29
  30. 30</VirtualHost>