我在我的 EC2 實體的 Apache httpd 服務器上設定了反向代理。根據瀏覽器,它似乎正在作業。我的 Express.js 服務器正在偵聽埠 5000,如果我https://www.myapp.com在瀏覽器中輸入 url,我的 Express 服務器會向客戶端發送正確的回應。
但是,https url 不適用于我的 React Native 應用程式。在我的本地計算機上使用我的 RN 應用程式時,使用 url 對我的服務器的 API 呼叫不會產生任何回應。我沒有看到來自 React Native 或我的服務器的任何錯誤(pm2 日志沒有給我任何資訊)。
以下是我的 httpd.conf 檔案的重要配置:
//在檔案的頂部:
聽80
//在檔案的底部:
ProxyPass / http://myapp.com:5000
ProxyPassReverse / http://myapp.com:5000
我的 React Native 應用程式使用域名訪問 API 路由的唯一方法是如果我使用這個:
http://www.myapp.com:5000
這也適用于瀏覽器,但當然連接不安全。
這會產生來自 React Native 的錯誤:https://www.myapp.com:5000。注意s在https
undefined 不是一個物件
雖然這個錯誤通常是你給它一個錯誤的 url 時得到的。
這也沒有給我任何東西:http://www.myapp.com,但在瀏覽器上它默認為 https 并從 Express 產生正確的回應。
我無法確定問題出在哪里。我在設定反向代理之前為我的域名設定了 SSL/TLS,這個順序似乎與在線教程建議的相反。老實說,我不知道這是否重要。
任何方向都會有所幫助。謝謝。
uj5u.com熱心網友回復:
事實證明,問題出在我的 httpd.conf 檔案中的配置上。我需要給 ProxyPass 和 ProxyPassReverse 一個路徑。單獨使用“/”是不行的。
ProxyPass/api http://myapp.com:5000
ProxyPassReverse /api http://myapp.com:5000
然后在我的 url 路徑上我需要 /api 最后:
https://www.myapp.com/api
現在一切正常。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/536860.html
