nginx配置server模塊的問(wèn)題
問(wèn)題描述
假設(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; }#... #... #...}
問(wèn)題:1、有5個(gè)二級(jí)域名,必須要寫(xiě)5個(gè)server模塊嗎?可以寫(xiě)個(gè)通用的只用一個(gè)server模塊嗎?
2、如果寫(xiě)5個(gè)server模塊的話,每個(gè)server模塊中的location ~ .php${ }模塊是一樣的,這個(gè)location ~ .php${ }模塊可以只寫(xiě)一遍來(lái)共用嗎?也就是可以把它弄到server模塊的上一層模塊http模塊去嗎?
3、看到很多示例的root和index都要寫(xiě)兩遍,server里面寫(xiě)一遍,下一層的location / { }模塊中再寫(xiě)一遍,這是為什么?
問(wèn)題解答
回答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指令來(lái)引入多個(gè)conf文件,每個(gè)域名是一個(gè)conf文件。2.location 指令只能是在server、location里;詳見(jiàn)官方文檔說(shuō)明:3.location里的root index 可以共用server里的root index.
server name是可以指定多個(gè)域名的,用空格分隔
相關(guān)文章:
1. python+jinja2編寫(xiě)前端界面,發(fā)生Unexpected end of template問(wèn)題,求解決!2. python - django orm 過(guò)濾日期為當(dāng)天日期的數(shù)據(jù)3. angular.js - 指令下的指令 面對(duì)上級(jí)指令ng-repeat的時(shí)候 ng-controller會(huì)出現(xiàn)多次的問(wèn)題?4. javascript - 一個(gè)JS的算法,求大神解答5. python - django 按日歸檔統(tǒng)計(jì)訂單求解6. javascript - jQuery中l(wèi)ive事件在移動(dòng)微信端下沒(méi)有效果;代碼如下7. android-studio - Android Studio 運(yùn)行項(xiàng)目的時(shí)候一堆警告,跑步起來(lái)!?8. 熱切期待朱老師的回復(fù),網(wǎng)頁(yè)視頻在線播放器插件配置錯(cuò)誤9. mysql - phpmyadmin怎么分段導(dǎo)出數(shù)據(jù)啊?10. Android "1"=="1" 到底是true還是false
