iT邦幫忙

0

前端CORS問題,我這樣解算是代理伺服器嗎?反向代理又是如何呢?

  • 分享至 

  • xImage

如題,小弟目前負責開發公司專案的前端,公司server端是不能設置access-controll-allow-origin標頭的,我前端從本機瀏覽器送API請求就報CORS錯誤(正常),以前可以用Chrome的外掛去解,現在那個外掛好像沒用了。
由於本身會Node.js後端,就直接開一個簡單的express的server api去請求公司server的api,前端直接送請求給這個自己開的server拿請求回來的資料,這樣做就可以了。

但我看網路上人家講的反向代理是用nginx去做port和請求跟目標的url轉換,想請教反向代理意思和代理伺服器是一樣意思嗎? 我那種自己開server api去抓的作法又是屬於哪一種呢?

還請大大們解惑了,感激不盡~

混水摸魚 iT邦研究生 2 級 ‧ 2022-08-02 10:25:57 檢舉
這個給你參考參考
https://www.webteach.tw/?p=5155
jojoman iT邦新手 5 級 ‧ 2022-08-03 09:00:58 檢舉
感謝大大,這篇文章講得好清楚,現在搞懂了!!
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

1
lolis
iT邦新手 5 級 ‧ 2022-08-02 18:03:25

官網下載 nginx
http://nginx.org/en/download.html
下載完在更改 conf/nginx.conf文件

events {
    worker_connections  1024;
}
http {
    server {
        # 配置服務器
        listen       9000;
        server_name  localhost;
        
        # 訪問根路徑,返回前端靜態資源
        location / {
            # 前端代碼地址
            proxy_pass http://localhost:8000/;  #前端項目開發模式,node開啓的服務器,根路徑下可以打開index.html
        }
        
        # 需要覆寫 rewrite 請求的路徑配置
        location /api/ {
            rewrite ^/api/(.*)$ /$1 break;   #對所有的後端請求增加api前綴方便區分,真正訪問的時候一處理這個前綴(可在開發、生產環境配置嗷)
            # API Server
            proxy_pass https://api.github.com/users;  #需要代理的服務器,ajax的url為 /api/users/1 的請求將會訪問 https://api.github.com/users/1
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

nginx目錄執行 .\nginx.exe -c .\conf\nginx.conf

這樣打開本地地址
http://localhost:9000/api/users/22
會指向
https://api.github.com/users/22

jojoman iT邦新手 5 級 ‧ 2022-08-03 09:01:57 檢舉

哇!感謝大大詳細的nginx指點,打算也來學nginx的方式試試。

1

大約用個文字圖給你看了解一下好了

(會員-> [代理伺服器]) ->目標
會員-> ( [反向代理伺服器] ->目標 )

注意一下 () 的地方。
正常來說就是來源方使用的。還是目標方使用的。

jojoman iT邦新手 5 級 ‧ 2022-08-03 09:04:05 檢舉

瞭解了!感謝大大的幫助!

我要發表回答

立即登入回答