windows下使用nginx調試簡介

安裝使用

nginx是一個反向代理服務器,在web開發調試中常常用到,寫一個簡單的使用說明和總結。html

1. 下載

點擊官網下載地址 下載對應版本的nginx並解壓nginx

2. 配置

在解壓的目錄下找到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; // 要代理的地址
        }
    }

3. 經常使用命令

  1. start nginx // 啓動nginx
  2. nginx -s stop // 快速中止nginx,可能並不保存相關信息
  3. nginx -s quit // 有序的中止nginx,並保存相關信息
  4. nginx -s reload // 從新載入配置,修改完配置文件後使用此命令重啓

原理簡析

在說明使用nginx的優勢以前,先說說另外一種經常使用的調試方案:修改hosts文件。
修改host的原理是:對主機添加特定dns解析規則,將指定域名解析至某個特定ip。例如:瀏覽器

在hosts文件裏寫了這麼一行:127.0.0.1 example.com,接下來在瀏覽器輸入www.example.com後:服務器

  1. 主機檢測hosts文件發現有對應規則(若是沒有對應規則就走正常dns解析服務),因而向IP127.0.0.1:80(默認端口)發送http請求,請求報文上GET / HTTP/1.1,host:example.com
  2. 若是此時本地80端口確實啓動了某個服務,則處理該對應的請求。

若是咱們正好是在本地的80端口運行這個要調試項目,那天然沒有問題。可是可能有意外狀況:ui

  1. 本地項目不跑在80端口
  2. 要監聽的host項目不在80端口,例如通常線上正式環境的項目使用的是https協議,請求默認端口就是443,

此時就須要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:80923d

在本地8092端口啓動實際項目,就能夠發如今瀏覽器訪問construct-courses.pre1.web.nd時,運行的正是咱們的實際項目代理

整個過程至此結束調試


慣例:若是內容有錯誤的地方歡迎指出(以爲看着不理解不舒服想吐槽也徹底沒問題);若是有幫助,歡迎點贊和收藏,轉載請徵得贊成後著明出處,若是有問題也歡迎私信交流,主頁有郵箱地址

相關文章
相關標籤/搜索