您好,登錄后才能下訂單哦!
nginx相關操作
Windows下操作:
1、啟動:
C:\server\nginx-1.14.2>start nginx
或
C:\server\nginx-1.14.2>nginx.exe
注:建議使用第一種,第二種會使你的cmd窗口一直處于執行中,不能進行其他命令操作。
2、停止:
C:\server\nginx-1.14.2>nginx.exe -s stop``
或
C:\server\nginx-1.14.2>nginx.exe -s quit
注:stop是快速停止nginx,可能并不保存相關信息;quit是完整有序的停止nginx,并保存相關信息。
3、重新載入Nginx:
C:\server\nginx-1.14.2>nginx.exe -s reload
當配置信息修改,需要重新載入這些配置時使用此命令。
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/ 寫法的區別如下:
不帶/
location /NginxTest/ {
proxy_pass http://abc.com:8080;
}
帶/
location /NginxTest/ {
proxy_pass http://abc.com:8080/;
}
上面兩種配置,區別只在于proxy_pass轉發的路徑后是否帶 “/”。
針對情況1:
(帶參數)如果訪問url =http://localhost:90/NginxTest/servlet/MyServlet?name=123333333,則被nginx代理后,請求路徑便會訪問http://abc.com:8080/NginxTest/servlet/MyServlet?name=123333333。
(不帶參數)如果訪問url =http://localhost:90/NginxTest/servlet/MyServlet,則被nginx代理后,請求路徑便會訪問http://abc.com:8080/NginxTest/servlet/MyServlet。
針對情況2:
如果訪問url = http://server/NginxTest/test.jsp,則被nginx代理后,請求路徑會變為 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/ 是一個匹配規則,用于攔截請求,匹配任何以 /NginxTest/ 開頭的地址,匹配符合以后就停止往下搜索正則。
2.rewrite ^/NginxTest/(.*)$ /$1 break;
代表重寫攔截進來的請求,并且只能對域名后邊的除去傳遞的參數外的字符串起作用,例如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后面的參數是一個簡單的正則^/NginxTest/(.*)$ /$1 ,$1代表正則中的第一個(),$2代表第二個()的值,以此類推。break代表匹配一個之后停止匹配。
rewrite的語法:
rewrite regex URL [flag];
rewrite是關鍵字,regex是正則表達式,URL是要替代的內容,[flag]是標記位的意思,它有以下幾種值:
last: 相當于Apache的[L]標記,表示完成rewrite
break: 停止執行當前虛擬主機的后續rewrite指令集
redirect: 返回302臨時重定向,地址欄會顯示跳轉后的地址
permanent: 返回301永久重定向,地址欄會顯示跳轉后的地址
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。