start nginx 或 C:\server\nginx-1.14.2>nginx.exe ..."/>
溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

nginx的基本使用和反向代理,地址重寫問題

發(fā)布時間:2020-07-20 18:45:06 來源:網(wǎng)絡(luò) 閱讀:6410 作者:愛情89757 欄目:建站服務(wù)器

nginx相關(guān)操作

 Windows下操作:
        1、啟動:

        C:\server\nginx-1.14.2>start nginx
        或

        C:\server\nginx-1.14.2>nginx.exe

        注:建議使用第一種,第二種會使你的cmd窗口一直處于執(zhí)行中,不能進行其他命令操作。

        2、停止:

        C:\server\nginx-1.14.2>nginx.exe -s stop``

        或

        C:\server\nginx-1.14.2>nginx.exe -s quit

        注:stop是快速停止nginx,可能并不保存相關(guān)信息;quit是完整有序的停止nginx,并保存相關(guān)信息。

        3、重新載入Nginx:

        C:\server\nginx-1.14.2>nginx.exe -s reload

        當(dāng)配置信息修改,需要重新載入這些配置時使用此命令。

        4、重新打開日志文件:

        C:\server\nginx-1.14.2>nginx.exe -s reopen

        5、查看Nginx版本:

        C:\server\nginx-1.14.2>nginx -v

nginx反向代理路徑問題

    http://abc.com:8080 寫法和 http://abc.com:8080/ 寫法的區(qū)別如下:

    不帶/
    location /NginxTest/ {
                proxy_pass  http://abc.com:8080;
    }

    帶/
    location /NginxTest/ {
                proxy_pass  http://abc.com:8080/;
    }
    上面兩種配置,區(qū)別只在于proxy_pass轉(zhuǎn)發(fā)的路徑后是否帶 “/”。
    針對情況1:
            (帶參數(shù))如果訪問url =http://localhost:90/NginxTest/servlet/MyServlet?name=123333333,則被nginx代理后,請求路徑便會訪問http://abc.com:8080/NginxTest/servlet/MyServlet?name=123333333。
           (不帶參數(shù))如果訪問url =http://localhost:90/NginxTest/servlet/MyServlet,則被nginx代理后,請求路徑便會訪問http://abc.com:8080/NginxTest/servlet/MyServlet。

    針對情況2:
              如果訪問url = http://server/NginxTest/test.jsp,則被nginx代理后,請求路徑會變?yōu)?http://proxy_pass/test.jsp,直接訪問server的根資源。
              訪問http://localhost:90/NginxTest/NginxTest/NginxTest/servlet/MyServlet,被nginx代理后,請求路徑才會訪問http://abc.com:8080/NginxTest/servlet/MyServlet。
    **注意:上面兩種訪問路徑的差別。
    修改配置后重啟nginx代理就成功了。**

nginx地址重寫

    location /NginxTest/ {
        rewrite  ^/NginxTest/(.*)$  /$1  break;
        proxy_pass  http://abc.com:8080;
    }

    1. ^~/NginxTest/ 是一個匹配規(guī)則,用于攔截請求,匹配任何以 /NginxTest/ 開頭的地址,匹配符合以后就停止往下搜索正則。
    2.rewrite  ^/NginxTest/(.*)$  /$1  break;
    代表重寫攔截進來的請求,并且只能對域名后邊的除去傳遞的參數(shù)外的字符串起作用,例如http://localhost:90/NginxTest/NginxTest/servlet/MyServlet?name=lovleovlove重寫,只對/NginxTest/NginxTest/servlet/MyServlet重寫。
    例如訪問地址:http://localhost:90/NginxTest/NginxTest/servlet/MyServlet?name=lovleovlove,實際訪問的地址(重寫地址)為http://ita-1312-0059.synacast.local:8080/NginxTest/servlet/MyServlet?name=lovleovlove
    例如訪問地址:http://localhost:90/NginxTest/NginxTest/servlet/MyServlet,實際訪問的地址(重寫地址)為http://ita-1312-0059.synacast.local:8080/NginxTest/servlet/MyServlet

    3.rewrite后面的參數(shù)是一個簡單的正則^/NginxTest/(.*)$  /$1 ,$1代表正則中的第一個(),$2代表第二個()的值,以此類推。break代表匹配一個之后停止匹配。
    rewrite的語法:
    rewrite regex URL [flag];
    rewrite是關(guān)鍵字,regex是正則表達式,URL是要替代的內(nèi)容,[flag]是標(biāo)記位的意思,它有以下幾種值:
    last: 相當(dāng)于Apache的[L]標(biāo)記,表示完成rewrite
    break: 停止執(zhí)行當(dāng)前虛擬主機的后續(xù)rewrite指令集
    redirect: 返回302臨時重定向,地址欄會顯示跳轉(zhuǎn)后的地址
    permanent: 返回301永久重定向,地址欄會顯示跳轉(zhuǎn)后的地址
向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI