node.js - 将 CloudFlare 上的 URL 转发到特定端口
问题描述
我有一个 apache 和 nodejs 服务器,端口 80 上的 apache 和 3001 上的 nodejs
我想为 api 调用创建一个 url,例如:
https://mywebsite..com:3001/到CloudFlare上的https://api.mywebsite.com/
有可能吗?我已经尝试过页面规则,但它没有用。
那么,我该怎么做呢?
谢谢
解决方案
最好的方法是将 apache 配置为将 api.mywebsite.com 代理到服务器上的端口 3001 grepped 以下示例来自
<VirtualHost *:*>
ProxyPreserveHost On
ProxyPass "/" "http://localhost:3001/"
ProxyPassReverse "/" "http://localhost:3001/"
ServerName api.mywebsite.com
</VirtualHost>
https://httpd.apache.org/docs/2.4/vhosts/examples.html
请确保您也使用正确的 CORS 设置,否则您将无法从您的网站前端请求您的 api
防止这种情况的另一种方法是将位置 /api 代理到您的 api
<Location "/api/">
ProxyPass "http://localhost:3001"
SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1
</Location>
https://httpd.apache.org/docs/2.4/mod/mod_proxy.html
推荐阅读
- angular - 如何保持角度通用运行
- javascript - 使用 Javascript / React 中的格式规则对象的条件样式格式
- python - 根据字典列表中的特定字典键检测和删除重复项
- python - 根据标准在熊猫中显示列
- regex - 将短语中的每个单词与另一个单元格匹配
- ibm-cloud - 如何在 IBM 云中将对象存储从一个实例迁移到另一个实例?
- uml - 如何在活动图中表示可从多个泳道获得的动作?
- r - dplyr 从 A 列到 D 列选择列以及介于两者之间的所有内容?
- math - 带有两个位置参数的“clamp”是一种常见的约定吗?
- jquery - select2 下拉列表中的换行符