nginx是一個反向代理服務器,在web開發調試中常常用到,寫一個簡單的使用說明和總結。html
點擊官網下載地址 下載對應版本的nginx並解壓nginx
在解壓的目錄下找到conf/nginx.conf
文件
添加所需監聽和代理的serverweb
# 項目名稱 server { listen 80; server_name example.com;//監聽的host #charset koi8-r; #access_log logs/host.access.log main; location / { proxy_set_header host $host; proxy_pass http://127.0.0.1:8092; // 要代理的地址 } }
在說明使用nginx的優勢以前,先說說另外一種經常使用的調試方案:修改hosts
文件。
修改host的原理是:對主機添加特定dns解析規則,將指定域名解析至某個特定ip。例如:瀏覽器
在hosts文件裏寫了這麼一行:127.0.0.1 example.com
,接下來在瀏覽器輸入www.example.com
後:服務器
127.0.0.1:80(默認端口)
發送http請求,請求報文上GET / HTTP/1.1
,host:example.com
。若是咱們正好是在本地的80端口運行這個要調試項目,那天然沒有問題。可是可能有意外狀況:ui
此時就須要nginx
來解決問題,nginx
的做用用一句話描述:將發送至特定host的請求轉發到指定的代理地址上。
舉一個實際的例子,首先在hosts添加一行127.0.0.1 construct-courses.pre1.web.nd
後,能夠在瀏覽器看到這樣的請求:
首先看圖上Grnrral
部分的remote address
字段,即前文的第一步驟完成,本地的80端口接收到一個http請求,host爲construct-courses.pre1.web.nd
。
接着在nginx
的配置文件中增長:spa
server { listen 80; server_name construct-courses.pre1.web.nd; location / { proxy_set_header host $host; proxy_pass http://127.0.0.1:8092; } }
在conf中配置如上圖代碼並啓動nginx後,nginx檢查到server_name construct-courses.pre1.web.nd
接收到了請求,根據匹配規則,將請求轉發到指定的 proxy_pass 即 http://127.0.0.1:8092
上。至此,請求example.com
實際變成了請求http://127.0.0.1:8092
3d
在本地8092端口啓動實際項目,就能夠發如今瀏覽器訪問construct-courses.pre1.web.nd時,運行的正是咱們的實際項目代理
整個過程至此結束調試
慣例:若是內容有錯誤的地方歡迎指出(以爲看着不理解不舒服想吐槽也徹底沒問題);若是有幫助,歡迎點贊和收藏,轉載請徵得贊成後著明出處,若是有問題也歡迎私信交流,主頁有郵箱地址