這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)怎么在nginx服務(wù)器中配置多域名,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
10多年的宿遷網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整宿遷建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“宿遷網(wǎng)站設(shè)計(jì)”,“宿遷網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
下面我就來(lái)說(shuō)說(shuō)server_name的使用吧:
server_name的匹配順序
Nginx中的server_name指令主要用于配置基于名稱虛擬主機(jī),server_name指令在接到請(qǐng)求后的匹配順序分別為:
1、準(zhǔn)確的server_name匹配,例如:
server { listen 80; server_name ssdr.info www.ssdr.info; ... }
2、以*通配符開始的字符串:
server { listen 80; server_name *.ssdr.info; ... }
3、以*通配符結(jié)束的字符串:
server { listen 80; server_name www.*; ... }
4、匹配正則表達(dá)式:
server { listen 80; server_name ~^(?.+)\.howtocn\.org$; ... }
Nginx將按照1,2,3,4的順序?qū)erver name進(jìn)行匹配,只有有一項(xiàng)匹配以后就會(huì)停止搜索,所以我們?cè)谑褂眠@個(gè)指令的時(shí)候一定要分清楚它的匹配順序(類似于location指令)。
server_name指令一項(xiàng)很實(shí)用的功能便是可以在使用正則表達(dá)式的捕獲功能,這樣可以盡量精簡(jiǎn)配置文件,畢竟太長(zhǎng)的配置文件日常維護(hù)也很不方便。下面是2個(gè)具體的應(yīng)用:
在一個(gè)server塊中配置多個(gè)站點(diǎn):
server { listen 80; server_name ~^(www\.)?(.+)$; index index.php index.html; root /data/wwwsite/$2; }
站點(diǎn)的主目錄應(yīng)該類似于這樣的結(jié)構(gòu):
/data/wwwsite/ssdr.info /data/wwwsite/linuxtone.org /data/wwwsite/baidu.com /data/wwwsite/google.com
這樣就可以只使用一個(gè)server塊來(lái)完成多個(gè)站點(diǎn)的配置。
在一個(gè)server塊中為一個(gè)站點(diǎn)配置多個(gè)二級(jí)域名 。
實(shí)際網(wǎng)站目錄結(jié)構(gòu)中我們通常會(huì)為站點(diǎn)的二級(jí)域名獨(dú)立創(chuàng)建一個(gè)目錄,同樣我們可以使用正則的捕獲來(lái)實(shí)現(xiàn)在一個(gè)server塊中配置多個(gè)二級(jí)域名:
server { listen 80; server_name ~^(.+)?\.howtocn\.org$; index index.html; if ($host = ssdr.info){ rewrite ^ http://www.ssdr.info permanent; } root /data/wwwsite/ssdr.info/$1/; }
站點(diǎn)的目錄結(jié)構(gòu)應(yīng)該如下:
/data/wwwsite/ssdr.info/www/ /data/wwwsite/ssdr.info/nginx/
這樣訪問(wèn)www.ssdr.info時(shí)root目錄為/data/wwwsite/ssdr.info/www/,nginx.ssdr.info時(shí)為/data/wwwsite/ssdr.info/nginx/,以此類推。
后面if語(yǔ)句的作用是將ssdr.info的方位重定向到www.ssdr.info,這樣既解決了網(wǎng)站的主目錄訪問(wèn),又可以增加seo中對(duì)www.ssdr.info的域名權(quán)重。
多個(gè)正則表達(dá)式
如果你在server_name中用了正則,而下面的location字段又使用了正則匹配,這樣將無(wú)法使用$1,$2這樣的引用,解決方法是通過(guò)set指令將其賦值給一個(gè)命名的變量:
server { listen 80; server_name ~^(.+)?\.howtocn\.org$; set $www_root $1; root /data/wwwsite/ssdr.info/$www_root/; location ~ .*\.php?$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /data/wwwsite/ssdr.info/$fastcgi_script_name; include fastcgi_params; } }
Nginx不同域名反向代理到另一臺(tái)服務(wù)器 proxy_pass和$host
想讓一個(gè)vps專門做另一個(gè)VPS的前端,后端VPS每添加一個(gè)域名,前端VPS就要同時(shí)添加一個(gè)域名來(lái)反向代理,作為前端的VPS如果一個(gè)一個(gè)的添加后端VPS的域名,那么這個(gè)事情特別麻煩,能不能讓其自動(dòng)反向代理后端VPS呢,用到proxy_pass和$host就可以輕松實(shí)現(xiàn)。
以下例子為了省事,以lnmp為安裝環(huán)境進(jìn)行設(shè)置
修改前端VPS的nginx.conf文件,修改成以下內(nèi)容:
server { listen 80; server_name $host; location / { proxy_pass http://www.31.gd/; proxy_set_header Host $host; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 60; proxy_read_timeout 600; proxy_send_timeout 600; }
下面的一并修改吧。
location /.(php|php5)?$ { fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_index index.php; include fcgi.conf; } location /status { stub_status on; access_log off; } location /.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location /.(js|css)?$ { expires 12h; }
這樣就可以實(shí)現(xiàn)了前端VPS可以反向代理任意域名到后端VPS,只要將域名解析到前端VPS,后端VPS進(jìn)行域名綁定,那么就可以直接訪問(wèn)到了
一臺(tái)nginx帶多個(gè)域名多個(gè)tomcat情況的配置
多個(gè)域名,其中2個(gè)域名需支持泛域名解析:
1、www.abc.com
2、www.bcd.com
3、*.efg.com
4、*.hij.com
其中1,2,3為一臺(tái)tomcat,4為獨(dú)立tomcat。前端一臺(tái)nginx,通過(guò)配置多個(gè)虛擬主機(jī)來(lái)實(shí)現(xiàn)該部署。
進(jìn)入/etc/nginx/conf.d目錄,所有虛擬主機(jī)的配置文件都在該目錄下存放,配置。
配置支持泛域名
# # A virtual host using mix of IP-, name-, and port-based configuration # server { listen 81; server_name *.efg.com; location / { proxy_pass http://localhost:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } # # A virtual host using mix of IP-, name-, and port-based configuration # server { listen 81; server_name *.hij.com; location / { proxy_pass http://localhost:8081; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
泛域名解析關(guān)鍵為紅色部分,如果沒有紅色部分,后端8080及8081口對(duì)應(yīng)的tomcat虛擬主機(jī)將無(wú)法獲得域名信息,導(dǎo)致后端tomcat無(wú)法獲取到對(duì)應(yīng)的域名信息。
后端TOMCAT支持泛域名解析時(shí),需要設(shè)置 host name 為 localhost 以支持泛域名指向。
Nginx 多域名配置
nginx綁定多個(gè)域名可又把多個(gè)域名規(guī)則寫一個(gè)配置文件里,也可又分別建立多個(gè)域名配置文件,我一般為了管理方便,每個(gè)域名建一個(gè)文件,有些同類域名也可又寫在一個(gè)總的配置文件里。
一、每個(gè)域名一個(gè)文件的寫法
首先打開 nginx域名配置文件存放目錄:/usr/local/nginx/conf/servers ,如要綁定域名www.web126.com 則在此目錄建一個(gè)文件:www.web126.com.conf 然后在此文件中寫規(guī)則,如:
server { listen 80; server_name www.web126.com; #綁定域名 index index.htm index.html index.php; #默認(rèn)文件 root /home/www/web126.com; #網(wǎng)站根目錄 include location.conf; #調(diào)用其他規(guī)則,也可去除 }
然后重起nginx服務(wù)器,域名就綁定成功了。
Nginx服務(wù)器重起命令:/etc/init.d/nginx restart。
二、一個(gè)文件多個(gè)域名的寫法
一個(gè)文件添加多個(gè)域名的規(guī)則也是一樣,只要把上面單個(gè)域名重復(fù)寫下來(lái)就ok了,如:
server { listen 80; server_name www.web126.com; #綁定域名 index index.htm index.html index.php; #默認(rèn)文件 root /home/www/web126.com; #網(wǎng)站根目錄 include location.conf; #調(diào)用其他規(guī)則,也可去除 } server { listen 80; server_name msn.web126.com; #綁定域名 index index.htm index.html index.php; #默認(rèn)文件 root /home/www/msn.web126.com; #網(wǎng)站根目錄 include location.conf; #調(diào)用其他規(guī)則,也可去除 }
三、不帶www的域名加301跳轉(zhuǎn)
如果不帶www的域名要加301跳轉(zhuǎn),那也是和綁定域名一樣,先綁定不帶www的域名,只是不用寫網(wǎng)站目錄,而是進(jìn)行301跳轉(zhuǎn),如:
server { listen 80; server_name web126.com; rewrite ^/(.*) http://www.web126.com/$1 permanent; }
四、添加404網(wǎng)頁(yè)
添加404網(wǎng)頁(yè),都可又直接在里面添加,如:
server { listen 80; server_name www.web126.com; #綁定域名 index index.htm index.html index.php; #默認(rèn)文件 root /home/www/web126.com; #網(wǎng)站根目錄 include location.conf; #調(diào)用其他規(guī)則,也可去除 error_page 404 /404.html; }
最后還有一個(gè)方法需要注意,可能有需要禁止IP直接訪問(wèn)80端口或者禁止非本站的域名綁定我們的IP,這樣的話應(yīng)該
如下處理,放到最前一個(gè)server上面即可:
server{ listen 80 default; server_name _; return 403; }
上述就是小編為大家分享的怎么在nginx服務(wù)器中配置多域名了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
分享題目:怎么在nginx服務(wù)器中配置多域名
當(dāng)前地址:http://sd-ha.com/article36/jgshsg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、電子商務(wù)、商城網(wǎng)站、、做網(wǎng)站、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)