nginx配置server模塊的問題
問題描述
假設(shè)有5個(gè)二級(jí)域名:
aaa.example.combbb.example.comccc.example.comddd.example.comeee.example.com
在配置nginx的時(shí)候,server模塊是這樣的:
server { listen 443 ssl http2;server_name aaa.example.com;root /var/www/aaa.example.com/public; index index.php index.html index.htm;location / {root /var/www/aaa.example.com/public;try_files $uri $uri/ /index.php?$query_string;index index.php index.html index.htm; } location ~ .php$ {try_files $uri /index.php =404;fastcgi_split_path_info ^(.+.php)(/.+)$;fastcgi_pass unix:/dev/shm/php-fpm.sock;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;includefastcgi_params; }#... #... #...}
問題:1、有5個(gè)二級(jí)域名,必須要寫5個(gè)server模塊嗎?可以寫個(gè)通用的只用一個(gè)server模塊嗎?
2、如果寫5個(gè)server模塊的話,每個(gè)server模塊中的location ~ .php${ }模塊是一樣的,這個(gè)location ~ .php${ }模塊可以只寫一遍來共用嗎?也就是可以把它弄到server模塊的上一層模塊http模塊去嗎?
3、看到很多示例的root和index都要寫兩遍,server里面寫一遍,下一層的location / { }模塊中再寫一遍,這是為什么?
問題解答
回答1:server_name ~^(?<site>(aa|bb|cc).example.com)$;root /var/www/$site/public; # location 里的root如果一樣,可以不需要了,index也一樣,大多數(shù)人是復(fù)制的回答2:
1.當(dāng)你的5個(gè)域名指向同一根目錄,表示同一站點(diǎn)時(shí),server_name可以指定多個(gè)域名,用空格分隔;當(dāng)你的5個(gè)域名表示不同站點(diǎn),就要配置多個(gè)server段,通常用include指令來引入多個(gè)conf文件,每個(gè)域名是一個(gè)conf文件。2.location 指令只能是在server、location里;詳見官方文檔說明:3.location里的root index 可以共用server里的root index.
server name是可以指定多個(gè)域名的,用空格分隔
相關(guān)文章:
1. javascript - SuperSlide.js火狐不兼容怎么回事呢2. 運(yùn)行python程序時(shí)出現(xiàn)“應(yīng)用程序發(fā)生異常”的內(nèi)存錯(cuò)誤?3. 一個(gè)mysql聯(lián)表查詢的問題4. java - 安卓電視盒子取得了root權(quán)限但是不能安裝第三方應(yīng)用,請(qǐng)問該怎么辦?5. python - 如何使用pykafka consumer進(jìn)行數(shù)據(jù)處理并保存?6. 一個(gè)走錯(cuò)路的23歲傻小子的提問7. html5 - iOS的webview加載出來的H5網(wǎng)頁,怎么修改html標(biāo)簽select的樣式字體?8. java - 創(chuàng)建maven項(xiàng)目失敗了 求解決方法9. java-se - 正在學(xué)習(xí)Java SE,為什么感覺學(xué)習(xí)Java就是在學(xué)習(xí)一些API。10. 主從備份 - 跪求mysql 高可用主從方案
