WINDOWS下nginx實現本地支持的圖片服務器反向代理


最近在學習nginx的反向代理和負載均衡的運用時,覺得挺簡單的,但是還是想寫一篇博客用於記錄自己的學習過程。

  

好的,我們進入正題

   Nginx(engine x) 是一個高性能的HTTP和反向代理服務器,也是一個IMAP/POP3/SMTP服務器。

   其將源代碼以類BSD許可證的形式發布,因它的穩定性、豐富的功能集、示例配置文件和低系統資源的消耗而聞名。

 引入眼簾就是各種的專業名詞,雖然我並不太了解這些專業名詞說包含的意義和具體使用,但就我目前而言,只要能學會使用Nginx實現反向代理技術,就已經足夠了。

 

   Nginx是一個特別輕量級的反向代理服務器,整個軟件包3M多一點,卻可以支撐起高達 50,000 個並發連接數的響應,感謝Nginx為我們選擇了 epoll and kqueue作為開發模型。

   Nginx作為負載均衡服務器:Nginx 既可以在內部直接支持 Rails 和 PHP 程序對外進行服務,也可以支持作為 HTTP代理服務器對外進行服務。Nginx采用C進行編寫,

 不論是系統資源開銷還是CPU使用效率都比 Perlbal 要好很多。處理靜態文件,索引文件以及自動索引;打開文件描述符緩沖。無緩存的反向代理加速,簡單的負載均衡和容錯。

 FastCGI,簡單的負載均衡和容錯。

 

接下來,讓我們來簡單了解一下Nginx的簡單用法:

  首先我們需要下載一個Nginx的軟件包,這里我使用的是nginx-1.9.0版本的軟件包,解壓出來以后,是這個樣子的:

  

  conf:配置文件所在的文件夾(存放着Nginx的一堆配置文件)

     html:Nginx的自帶首頁文件夾(存放着Nginx的index.html和50x.html)

  logs:Nginx的日子文件夾(在啟動失敗的時候會生成error.log,啟動成功以后會生成一個存放着Nginx啟動時獲得的pid的PID文件)

  目前主要用到的文件夾基本就這么幾個。

這里說一下我的需求:

  我有一個測試項目,里面有用到文件上傳組件,文件上傳以后存放在本地的F:盤下,我想通過訪問一個類似域名的形式,請求到文件,具體需求就是這樣。

  首先:文件在上傳到本地時的路徑是:F:\demo\demo-upload\年\月\日\時\

  存入到數據庫中的部分為:年\月\日\時\*****文件名

  虛擬地址為:image.demo.com

  接下來我們來實現這個小功能:

  1.首先,我們需要配置Nginx的conf目錄下的nginx.conf

  讓我們先來看看nginx.conf文件長啥樣

  

 主要的配置需要在http這對大括號中來編寫

  

  我們在http大括號中寫入上面的配置

  server表示服務的意思,listen代表監聽的端口,location表示需要轉向的參數 root表示本地文件系統

  編寫了上面的配置之后,我們的需求已經快完成了。

  接下來,我們還需要修改hosts文件中的hosts域名

  hosts文件存放在WINDOWS文件系統的:C:\Windows\System32\drivers\etc 目錄下

  我們在hosts文件中加入我們的虛擬路徑,指向本地IP

  127.0.0.1 image.demo.com  然后把文件保存

   接下來我們就可以開始啟動Nginx了

  首先  我們進入到Nginx的根目錄,也就是能看到Nginx.exe那一層文件夾

  然后雙擊運行.exe文件

  我們也可以使用cmd命令行來啟動Nginx  我們需要切換到Nginx的根目錄下,然后輸入指令:start nginx 然后回車

  如何驗證Nginx是否成功啟動?

  我們打開瀏覽器,地址欄輸入:http://localhost:80 如果出現以下頁面,就代表你的Nginx已經成功啟動了

  

  如果顯示的是其他的內容,說明啟動可能出錯了,那我們就需要找啟動失敗的原因了,我們切換到Nginx根目錄下的logs文件夾中

  有一個error.log文件,打開它  出現如下錯誤信息:

  2019/04/26 09:59:03 [emerg] 16136#10460: bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions)

  該錯誤信息描述的是:80端口被占用了

  這個時候 我們就需要去看一下  是哪個應用在占用我的80端口

  打開cmd輸入:netstat -ano 可以看到被監聽端口的使用信息:

  我這里是被 ssl(internet infomation services) 把80端口占用了,我們去找一下這個服務,去把它安排一下。

  此電腦>右鍵屬性>控制面板主頁>程序>啟用或關閉windows功能 >找到ssl 把前面的框取消勾選

  好的  我們再來試一下  

  進入命令行,切換到Nginx的根目錄下  輸入 start nginx 回車  窗口一閃而過,好的 驗證一下

  瀏覽器地址欄輸入:http://localhost:80,啟動成功了

  然后我在瀏覽器中輸入我的虛擬路徑:http://image.demo.com/****/**/**/**/*******.jpg

  成功出現了我上傳的圖片,到此,簡單的反向代理已經實現了。

 

  這是我的第一篇博客,記錄的是很簡單的一個Nginx反向代理的初級應用技術,在不久的下一篇中,我會記錄我學習Nginx實現負載均衡的初級應用。

  

 

  學習是一個慢慢 積累、沉淀 的過程

 

 


免責聲明!

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



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