咱們在前端開發的過程當中,在對接口時候,每每須要跨域請求,那麼及其簡便的方法就是使用nginx反向代理,可是存在幾點缺點html
1.在新的一個項目下,咱們須要找到安裝nginx目錄的nginx.conf文件而且修改代理內容,重啓纔能有效前端
2.若是修改錯誤,還會影響以前正確的代理端口node
3.這個配置文件很是複雜,不利於新手編寫nginx
因而有沒有更好的方式呢,答案是確定的,前段時間學習了docker的內容,發現nginx容器能夠實現很是多的代理,並且能夠隨時關閉隨時開啓,可是命令行輸入仍是顯得比較麻煩,因而我本身就封裝了一下,如今實現前端代理就只須要一行命令。若是想學docker,推薦阮大神的博客 docker入門git
一.首先,你須要下載docker,關於docker實在是一個很是好用的東西,在咱們這個教程你徹底不須要了解它,只須要下載它github
1.mac 下載地址 https://docs.docker.com/docker-for-mac/install/ajax
2.windows https://docs.docker.com/docker-for-windows/install/docker
下載好,運行下列命令,驗證是否安裝成功windows
docker version
若是沒有啓動docker,使用下列命令啓動跨域
# service 命令的用法 $ sudo service docker start # systemctl 命令的用法 $ sudo systemctl start docker
二.下載鏡像
1.使用命令
docker image pull nginx
這就是下載了nginx鏡像,想了解具體ngxin鏡像怎麼玩(徹底能夠不須要了解)推薦阮大神 nginx容器教程
三. 簡單配置代理,代理到你想要的地址
1.去往 https://github.com/jiangzhenfei/docker-nginx 將文件夾下的文件(一共兩個文件)拷貝到你須要代理的index.html目錄
其中:
add.conf 這個文件是你須要配置代理,配置很是簡單,我也在裏面寫了幾個配置的例子,固然不配置也是能夠的,可是就不能代理到你想要的地址了
location /blog/ { #遇到/blob/開頭的ajax就代理到http://47.93.103.19:30010這個地址 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://47.93.103.19:30010/; proxy_redirect off; }
nginx.js 這個文件是啓動文件,不須要任何修改
四. 啓動和關閉
1.node nginx.js 啓動,這個時候你只須要 打開http://localhost:8080/ 就能看見你的html頁面了,而且裏面接口的轉發都是正確的
2.若是想關閉整個代理,只須要執行 node nginx.js stop 便可,再次訪問就訪問不到了