天天看點

nginx 添加多網站配置,正反向代了解析綁定域名

#!/bin/bash
# 此處是lnmp環境的配置教程,搭建 lnmp 請參考:Linux centos下編譯安裝Lnmp shell腳本 完整版
# nginx伺服器部署多個網站,共用一個80端口。
#首先備份配置檔案:
#-------------------------------  備份所有 .pid 的檔案為 .pid.backup  --------------------------------#
pidback=(`find / -name "*.pid"`)                    # 定義一個小括号數組變量pidback  為 反引号裡面的指令執行結果
for i in ${pidback[*]}                    			# for循環變量  i  是 數組變量裡所有的元素,[*] 所有, [0] 第一個元素,預設從0 開始
do                                     				# do 開始執行循環
if [ ! -e $i.backup ]                                   # 判斷參考:Shell if 條件判斷檔案或目錄;字元串長度或為空,邏輯運算
then                                                # 判斷成立的情況執行
echo "備份檔案: $i 為: $i.backup"
cp $i $i.backup
else                                                    # 其他情況執行
echo "已經存在備份檔案: $i.backup"
fi                                    					# 結束判斷
done                                				# 結束循環
#------------------------------------  在配置檔案裡綁定域名和目錄 ------------------------------------ #
nginxconf="/www/server/nginx/18"		# nginx 所在目錄
www="/www/wwwroot"					# web 網站所在路徑
echo "
如果您的nginx 安裝目錄 不是 /www/server/nginx/18    請修改變量nginxconf 的值
如果您的web目錄 不是 /www/wwwroot    請修改變量 www 的值
"
read -p "請輸入域名:" address
read -p "請輸入網站路徑:$www/" catalogue
echo $address $www/$catalogue
mkdir $nginxconf/vhost                        # 在nginx目錄下 建立一個”vhost” 域名解析配置檔案目錄 
touch $nginxconf/vhost/$address.conf 
                                     # 建立反向解析配置檔案,多個網站需要建立多個配置檔案,然後用cat 寫入
echo  $nginxconf/vhost/$address.conf 
echo "
server
{
listen 80;                              #監聽端口設為 80。
server_name $address; 					#綁定多個域名  空格隔開。
index index.php index.htm index.html; 		#指定預設檔案。
root $www/$catalogue; 					#指定網站根目錄。
# location /a  其中 /a 是為了區分名字
        location /$catalogue {
            root  $www/$catalogue ;
            index  index.php index.html index.htm;
        }
  location ~ .php\$ {
                         root           $www/$catalogue;   
                         fastcgi_pass 127.0.0.1:9000;
                         fastcgi_index index.php;
                         fastcgi_param  SCRIPT_FILENAME  \$document_root\$fastcgi_script_name;
                         include        fastcgi_params;
                 }
} 
" >  $nginxconf/vhost/$address.conf
mkdir $www/$catalogue                          # 建立站點根目錄
echo "                                                          # 寫入php測試檔案aaaaaaaaaaaaaa
########  eisc.cn  小綠葉技術部落格腳本開發商 【nginx 多網站域名綁定】,測試php功能  #########
## BUG 未添加反向解析的域名都預設綁定再第一個web 網站
<?php
phpinfo()
?>
########  eisc.cn  小綠葉技術部落格腳本開發商 【nginx 多網站域名綁定】,測試php功能  #########
## BUG 未添加反向解析的域名都預設綁定再第一個web 網站
" > $www/$catalogue/eisc.cn.php
curl $address/eisc.cn.php
#------------------------------------  nginx 主配置檔案  -------------------------------------------------
#cat /dev/null > $nginxconf/conf/nginx.conf 
                                                			# 前面已經備份了配置檔案,清空nginx配置檔案内容,重新寫入
echo "
worker_processes  1;
pid    /usr/bin/nginx.pid;
#注意:nginx 的 pid 目錄
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
        include $nginxconf/vhost/*.conf;
# 注意,inclde 引入 反向解析配置檔案路徑
#此處一般為localhost  不啟預設路徑網站
    server {
        listen       80;
        server_name  127.0.0.1;
        location / {
            root  $www;
#注意:web網站所在目錄
            index  index.php index.html index.htm;
        }
  location ~ .php\$ {
                         root           $www;
#注意:php解析目錄
                         fastcgi_pass 127.0.0.1:9000;
                         fastcgi_index index.php;
                         fastcgi_param  SCRIPT_FILENAME  \$document_root\$fastcgi_script_name;
                         include        fastcgi_params;
                 }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }   
}
" > $nginxconf/conf/nginx.conf 
nginx -s reload
echo "如果多個解析conf配置檔案 綁定同一個網站,會提示 沖突,但是不影響正常使用"