如題,小弟目前負責開發公司專案的前端,公司server端是不能設置access-controll-allow-origin標頭的,我前端從本機瀏覽器送API請求就報CORS錯誤(正常),以前可以用Chrome的外掛去解,現在那個外掛好像沒用了。
由於本身會Node.js後端,就直接開一個簡單的express的server api去請求公司server的api,前端直接送請求給這個自己開的server拿請求回來的資料,這樣做就可以了。
但我看網路上人家講的反向代理是用nginx去做port和請求跟目標的url轉換,想請教反向代理意思和代理伺服器是一樣意思嗎? 我那種自己開server api去抓的作法又是屬於哪一種呢?
還請大大們解惑了,感激不盡~
官網下載 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
大約用個文字圖給你看了解一下好了
(會員-> [代理伺服器]) ->目標
會員-> ( [反向代理伺服器] ->目標 )
注意一下 () 的地方。
正常來說就是來源方使用的。還是目標方使用的。