ubuntu上配置nginx實現反向代理


反向代理

反向代理(Reverse Proxy)方式是指以代理服務器來接受internet上的連接請求,然后將請求轉發給內部網絡上的服務器,並將從服務器上得到的結果返回給internet上請求連接的客戶端,此時代理服務器對外就表現為一個反向代理服務器。

正向代理

正向代理我的理解就是:當你想要獲取某台服務器的內容時卻受到某些阻撓無法直接獲取到它的內容,這就需要一台中轉服務器,我們通過這台中轉服務器間接獲取到目的服務器的內容,例如說你想要訪問某外網資源,卻又受到局域網的限制,這時候你就可以通過訪問代理服務器間接訪問外網,這就是所說的正向代理。

那為什么要配置反向代理,一般配置反向代理主要用於處理跨域問題。而所謂的跨域就是受限於同源策略,即相同的協議、域名、端口號。一旦其中有一樣不同,就會造成跨域。

 

介紹完簡要概念,下面直接進入主題。

如果要在ubuntu上直接配置ngnix就必須要以 管理員的身份進入到ubuntu系統。

首先我們需要安裝一下nginx,命令如下:

sudo apt-get install nginx

 

安裝完成之后,我們先檢查一下nginx的版本,看下是否安裝成功

nginx -v

 

 

安裝成功后,我們進入nginx的目錄下

cd /etc/nginx/

 

我們進入今后可以通過ls命令看下下面有哪些文件夾

 

接着我們我們進入到conf.d的這個文件夾,新建一個命名為binguo-online-8787的配置文件

(命名看個人喜好,我一般是以自己域名加上端口號來命名)

cd conf.d

sudo vi binguo-online-8787.conf

 

創建之后我們來編譯一下它的配置文件,建議自己一個個打進去,這樣下次配置的時候會更有印象.

(如果編譯錯誤,可以繼續通過sudo vi binguo-online-8787.conf進去修改代碼,大多是中英文,或者漏寫了空格或多加了冒號的錯誤,然后重新保存編譯就可以了)

注意:我的服務器端口是8787,默認監聽端口是80端口   server_name 寫自己服務器外網的ip地址 例如11.112.113.114  http://binguo寫域名或者不寫可以

下面代碼根據自己的服務器監聽的端口修改

upstream binguo{

     server 127.0.0.1:8787;

}

 

server {

     listen 80;

     server_name  11.112.113.114;

      

      location / {

             proxy_set_header X-Real-IP $remote_addr;

             proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;

             proxy_set_header Host $http_host;

             proxy_set_header X-Nginx-Proxy true;

 

             proxy_pass http://binguo;

             proxy_redirect off;

      }

}

 

進入如果無法敲代碼通過按下i鍵即可,敲完后按下esc鍵恢復初始命令光標狀態再按下shift+;號,輸入!wq保存代碼

寫完配置文件然后開始運行(如果操作時間過長需要重新輸入管理員密碼)

sudo nginx -t

 

顯示運行成功后,重啟下nginx

sudo nginx -s reload

然后我們就可以在瀏覽器上通過11.112.113.114訪問到nginx默認的頁面啦

接着 我們只需要重啟一下我們的服務器就可以通過11.112.113.114訪問服務器啦!

處理跨域的方法還有很多,網上一搜一大堆,但是我覺得用nginx處理跨域還是比較簡單易懂的,在window配置nginx方式也是類似!

如果大家發現更好的處理跨域的方法也可以推薦給我下哈 O(∩_∩)O哈哈~!

 


免責聲明!

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



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