1、nginx rewrite怎麼獲取當前域名
當前域名可以使用 $host 代替
列如:
location /admin {
rewrite ^/(.*) http://$host/mh.admin/login.php permanent;
}
上面的意思是 當域名後面接的是admin 是跳轉到 域名/mh.admin/login.php
2、如何獲取nginx反向代理域名
nginx反向代理後,在應用中取得的ip都是反向代理伺服器的ip,取得的域名也是反向代理配置的url的域名,解決該問題,需要在nginx反向代理配置中添加一些配置信息,目的將客戶端的真實ip和域名傳遞到應用程序中。
3、nginx怎麼把所有請求都轉到一個域名
server {
listen 80;
server_name 目前的域名;
rewrite ^/(.*) 要轉到的域名/$1 permanent;
}
4、nginx+tomcat7+jsp,請問jsp頁面上如何獲取域名
jsp上的不就是request.getContextPath()嗎? 編譯後 相當於程序中生成了個java類,,現在request.getContextPath() 獲得的是127.0.0.1
5、請求怎麼匹配到nginx配置的servername
nginx中的server_name指令主要用於配置基於名稱虛擬主機,server_name指令在接到請求後的匹配順序分別為:1、准確的server_name匹配,例如:
server {
listen 80;
server_name frady.info www.frady.info;
...
}
2、以*通配符開始的字元串:
server {
listen 80;
server_name *.frady.info;
...
}
3、以*通配符結束的字元串:
server {
listen 80;
server_name www.*;
...
}
4、匹配到的正則表達式:
server {
listen 80;
server_name ~^(?<www>.+)\.frady\.info$;
...
}
nginx將按照1,2,3,4的順序對server name進行匹配,只有有一項匹配以後就會停止搜索,所以我們在使用這個指令的時候一定要分清楚它的匹配順序(類似於location指令)。
來個復雜的,這樣既可以匹配泛域名,又可以匹配部分以blog開頭的域名
兩個都是正則,優先順序一樣,哪個匹配的最精確就會匹配到哪個
#匹配*.frady.info
server_name ~^(.+)?\.frady\.info$;
#匹配blog*.frady.info
~^blog(.+)?\.frady\.info$;
以下是理所當然的寫法,其實是錯誤的,因為*會優先於正則,所以正則處寫的都匹配不到
#匹配*.frady.info
server_name *.frady.info;
#匹配blog*.frady.info
~^blog(.+)?\.frady\.info$;
你也可能寫出的是這樣的
#匹配blog*.frady.info
~*^blog(.+)?\.frady\.info$;
用regular expressions tester測試沒有問題,放到nginx里,然後發現報錯了
後來才想到域名其實是不區分大小寫的,所以這塊是不需要nginx來處理
官方的說明:
1.exact name
2.longest wildcard name starting with an asterisk, e.g. 「*.example.org」
3.longest wildcard name ending with an asterisk, e.g. 「mail.*」
4.first matching regular expression (in order of appearance in a configuration file)
6、Nginx log怎麼配置來訪域名
在Nginx log配置中添加$http_host就可以記錄來來訪域名
多個.conf方法(優點是靈活,缺點就是站點比較多配置起來麻煩)
這里以配置2個站點(2個域名)為例,n 個站點可以相應增加調整,假設:
IP地址: 192.168.1.100
域名1 example1.com 放在 /www/example1
域名2 example2.com 放在 /www/example2
7、nginx轉跳問題,nginx默認接受所有解析過來的域名,然後轉跳到指定的IP
給每個域名配置對應的虛擬主機
然後各自虛擬主機配置段中再配置相應的反向代理
8、nginx內置變數如何獲取完整的請求url
可以利用 $request_uri 來獲取原始的帶參數的完整的請求url。
9、nginx 配置裡面獲取 url的前綴
你這哪是要取前綴,你這是要截取字元串,一般前綴指的是一個路徑path。只能先獲取到URL,再進行字元的截取操作。
10、如何從一個nginx的http請求中獲取server端地址
在處理一個http請求的時候,很少會使用到本地地址,所以nginx為了節省這段空間,故默認不初始化本地地址,而是在具體需要的時候,再通過提供的介面去主動獲取,這樣一來節省了空間,又在需要的時候能夠快速的獲齲這是一個不錯的折中。