1. 程式人生 > >nginx負載均衡和反向代理跨域

nginx負載均衡和反向代理跨域

  nginx是一個高效能的Http伺服器,有兩個預設的模組proxy_pass和upstream。proxy_pass可以很方便的進行反向代理,然後配合upstream可以很方便的實現負載均衡。

   在nginx的根路徑下的conf資料夾下的nginx.conf就是我們需要關注的配置檔案。

 1. proxy_pass

在server下listen指定了伺服器的斷開,server_name指定了域名,location過濾訪問的請求,proxy_pass設定了一個url,意思就是當前反向代理的目標伺服器地址。

    所以當我們在本地訪問http://localhost:4444的時候,nginx會將我們的請求反向代理到proxy_pass指定的目標伺服器。

 2.upstream

    上面的請求都會反向代理到proxy_pass設定的目標伺服器上,但如果目標伺服器宕機了怎麼辦?這個時候我們可以設定負責均衡,upstream就可以派上用場了。

    upstream可以設定多臺伺服器,然後通過proxy_pass指向upstream,從而當我們訪問http://localhost:4444的時候,就反向代理到了upstream中的某一臺伺服器中了。

    而具體是反向代理到upstream中的哪一臺伺服器,我麼可以設定對應的演算法。

    i).預設是採用輪詢機制,就是採用輪詢的方式反向代理;

    ii).設定權重weight,我們可以通過設定weight來指定伺服器被訪問的權重,權重越大,反向代理過去的機會就越大;

    iii). ip_hash的方式:因為每一個ip對應一個唯一的hash值,這樣來自同一個ip的請求會反向代理到特定的某一臺機器上。

3.跨域

      前端跨域有很多方式,比如JSONP,服務端代理和html5的access-control-allow-orgin等。但這一一些方式都需要根據需要修改相關的前端或者後端程式碼。但nginx跨域不需要修改任何程式碼。

    從上面我們知道,nginx的proxy_pass可以將我們的請求通過proxy_pass反向代理到目標伺服器上,nginx跨域就是利用反向代理來實現。比如我們需要訪問某個後端api,假設它的地址是http:://xxxxx/api/myrequest,並且後端api的地址都是以http;//xxxxx/api開頭。因為使用ajax直接訪問該地址肯定存在跨域問題,那麼如何配置nginx的配置檔案呢?

    只增加一個對應的location去過濾請求,然後進行反向代理,我們捕捉所有以/api開頭的請求。

    有兩種方式:

    i. 方式一:

location /api/ {
            
        proxy_pass http://xxxxx/api;
}
   ii. 方式二:

location /api/ {
            
        proxy_pass http://xxxxx/api/;
}

    方式二比方式一多了一個/。

    區別就是:

    方式一: 如果使用者訪問的是http://?????/api/getInfo,反向代理到的是http://xxxxx/api/getInfo

    方式二: 如果使用者訪問的是http://?????/api/getInfo,反向代理到的是http://xxxxx/getInfo

這樣就達到了跨域了

相關推薦

nginx負載均衡反向代理

  nginx是一個高效能的Http伺服器,有兩個預設的模組proxy_pass和upstream。proxy_pass可以很方便的進行反向代理,然後配合upstream可以很方便的實現負載均衡。    在nginx的根路徑下的conf資料夾下的nginx.conf就是我們

Nginx負載均衡反向代理

技術 建立 方法名 什麽 serve 參數 不知道 出現 off 1:反向代理 代理就是中介,那有反向代理就有正向代理,兩者的區別是什麽嘞? 正向代理隱藏真實客戶端,服務端不知道實際發起請求的客戶端.,proxy和client同屬一

Windows 通過Nginx實現負載均衡反向代理配置

Nginx版本安裝地址 http://nginx.org/en/download.html 找到nginx.conf檔案,修改兩個地方(在安裝檔案conf資料夾中) 新增伺服器池,設定2臺伺服器,權重級別都設定2 #設定負載均衡的伺服器列表 #upstream表示負載伺服器

Nginx HTTP負載均衡反向代理配置

當前大併發的網站基本都採用了Nginx來做代理伺服器,並且做快取,來扛住大併發。先前也用nginx配置過簡單的代理,今天有時間把整合過程拿出來和大家分享,不過其中大部分也是網上找來的資源。 nginx完整的反向代理程式碼如下所示  : [[email protected] conf]# vi

nginx的配置、虛擬主機、負載均衡反向代理--03

第3篇主要講 URL路由重寫 和 讀寫分離 nginx中的 location 正則模組 nginx中的URL重寫怎麼做。url重寫模組,主要是在location模組面來實現,我們一點一點的看。 首先看下location 正則匹配的使用。 還記得之前是

nginx的配置、虛擬主機、負載均衡反向代理--02

基於域名的虛擬主機 假設我們在本地開發有3個專案,分別在hosts裡對映到本地的127.0.0.1上: 127.0.0.1 www.iyangyi.com iyangyi.com 127.0.0.1 api.iyangyi.com 127.0.0.1 a

Nginx負載均衡反向代理—《億級流量網站架構核心技術》

小時 維護 額外 nat gzip 網站架構 weight 2.7 熱點 當我們的應用單實例不能支撐用戶請求時,此時就需要擴容,從一臺服務器擴容到兩臺、幾十臺、幾百臺。然而,用戶訪問時是通過如http://www.XX.com的方式訪問,在請求時,瀏覽器首先會查詢DNS服務

lnmt實現負載均衡反向代理

需求說明 搭建lnmt環境,實現反向代理和負載均衡 環境說明 ip 伺服器型別 172.16.11.18 tomcat 172.16.11.

nginx負載均衡反向代理配置

upstream 193.168.81.128{     server localhost:8080 weight=1 max_fails=2 fail_timeout=30s;     server localhost:8081 weight=1 max

Nginx負載均衡反向代理——擴充套件功能(NGINX Plus)

本文主要是介紹了NGINX Plus的相關功能,橫跨了NGINX Plus R5/R6/R7/R9等各個不同版本的更新。涉及的是Nginx反向代理和負載均衡的更為高階的用法。主要包含:HTTP負載均衡,HTTP長連線,TCP和UDP的負載均衡,上游連線數限

Nginx服務搭建負載均衡反向代理,快取加速,訪問分散式檔案系統高可用

主配置檔案如下:[[email protected]~]#vim /usr/local/nginx/conf/nginx.conf server{ listen 8099               //埠號 location / {      autoindex on;      autoinde

Nginx安裝及配置、負載均衡反向代理、虛擬主機

Nginx安裝1. 生產環境是lInux,windows版也有,它是c語言開發2. Windows下安裝 直接解壓縮xx.zip格式的即可,點選xx.exe啟動3. Linux下安裝1)xx.tar.g

負載均衡反向代理

proxy 反向代理服務 方式 地址 watermark 響應 pro 雙網卡 width 文章出自:http://blog.csdn.net/cywosp/article/details/38026809 反向代理(Reverse Proxy)方式是指以代

nginx負載均衡mysql主主被動模式基礎架構綜合部署

nginx負載均衡 mysql主從(主主被動互備模式) 1.結構思路 準備用5個虛機,一個虛機安裝nginx來配置負載均衡,兩個虛機做web服務器,另外兩個虛機,安裝mysql,做主主被動配置,每次web只讀取一個mysql服務。 2.具體實施步驟 用vmware最小化安裝5個虛機,我用的是c

Nginx負載均衡防爬蟲策略

Nginx負載均衡和防爬蟲策略 nginx負載均衡設置 nginx設置 nginx Nginx負載均衡和防爬蟲策略 vim langba888.confupstream langba888 {#每60s進行一次健康檢

正向代理負載均衡反向代理

讓我 bubuko com gin 必須 代理技術 轉發 請求轉發 特點 1、正向代理 假設我們需要使用自己的筆記本(A)訪問國外的站點(B),由於網絡限制,我們無法訪問國外的站點.但是此時我們有一臺服務器(C)跳出了網絡限制可以訪問國外站點,那麽我們可以通過正向代理技術,

vue-cli反向代理請求

最近一直在通過 webpack + Vue-CLI 來學習,想跨域呼叫介面資料。奈何因同源策略,瀏覽器限制,導致資源請求一直不成功。 現在整理一下思路 — — 跨域: 指瀏覽器受同源策略限制,不能夠訪問不同域的頁面(指令碼)。 同源策略限制已下行為: LocalStorage

Nginx https配置 反向代理到spring bootvue.js

1. 先獲取證書,證書可以有很多種, Let's Encrypt 或者阿里雲都可以 2. 這裡我用Let's Encrypt 萬用字元證書 以centos 7為例 **獲取證書**  #獲取證書生成工具 wget https://dl.eff.org/certbot

Nginx負載均衡及靜態代理

nginx.conf #linux下出現nginx 403,取消註釋改成 use root  user root;worker_processes 1; #error_log logs/error.log;#error_log logs/error.log notice;#error_log

每天進步一點點——負載均衡反向代理

    反向代理(Reverse Proxy)方式是指以代理伺服器來接受internet上的連線請求,然後將請求轉發給內部網路上的伺服器,並將從伺服器上得到的結果返回給internet上請求連線的客戶端,此時代理伺服器對外就表現為一個伺服器,該伺服器就可稱之為代理伺服器。由於代理伺服器處在最終處理請求訪問的