使用nginx實現純前端跨越


  1. 你是否厭倦了老是依賴后台去處理跨域,把握不了主動權
  2. 你是否想模仿某個app倒騰一個demo,卻困於接口無法跨域

那么很幸運,接下來我將現實不依賴任何后台,隨心所欲的想訪問哪個域名就訪問哪個!

下載nginx

地址: http://nginx.org/en/download.html
注意: 存放目錄中不能含有中文

nginx配置

強大的nginx反向代理工具,有很多東西值得我們去研究,這里我只貼出核心代碼,其他的還有待深入。例如我想做一個豆瓣的高仿app,調用 搜索圖書接口

nginx.conf server

完整配置文件

https://github.com/helijun/react-learn/blob/master/nginx/conf/nginx.conf

啟動nginx

將上面的配置文件替換你本地的nginx.conf
更改ip地址,server監聽端口
cd到nginx存放的根目錄

start nginx.exe

到此為止,大功告成,沒錯就是這么簡單。測試效果:

另外附上nginx常用的幾個命令

start nginx.exe //啟動
nginx.exe -s reload //重啟
nginx.exe -s stop //快速停止
nginx.exe -s quit //完整有序停止

總結

其實前端跨域問題在現在的前后端分離的項目中,應該是說普遍存在的,之前也寫過相關的文章總結 jsonp跨域請求優雅的封裝ajax,含跨域,但是都基本上是要后台配合的,並且還有很多局限性。那么現在這種方式,就真的很隨心所欲的,比如我現在還想代理到百度的api,那么只要在那個server中再添加一個location即可,如:

location /baidu {
    	rewrite  ^/baidu/(.*)$ /$1 break;
        proxy_pass   https://api.baidu.com;
}

注意事項

或許你發現了,所有的請求都添加了一個'douban'前綴,那么在真實的項目中,務必將這個前綴設置為一個變量,然后所有的ajax請求url都拼接這個前綴,防止后續如果有變更導致牽一發而動全身。

固定ip

為了防止ip變化導致nginx配置失效,我這里固定ip為 192.168.1.168

打開網絡和共享中心->本地連接->屬性->雙擊Internet協議版本4(TCP/IPv4)屬性


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM