例如有两个域名,指向同一个服务器IP
www.domain1.com
www.domain2.com
我建立两个目录, 存放网站文件
/var/www/domain1.com/public
/var/www/domain2.com/public
nginx配置文件为:
server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; server_name ~^(www\.)?(.+)$; set $domain $2; root /var/www/$domain/public; index index.php index.html index.htm; if ($host = domain1.com){ rewrite ^ http://www.domain1.com permanent; } if ($host = domain2.com){ rewrite ^ http://www.domain2.com permanent; } location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { try_files $uri /index.php =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~* \.(gif|jpg|jpeg|mp4|mp3|wav|ogg|flv)$ { expires 30d; valid_referers *.domain1.com *.domain2.com ~\.baidu\.com; if ($invalid_referer) { rewrite ^/ http://domain1.com; #return 404; } } }
注意:
set $domain $2; root /var/www/$domain/public; 不能直接用
root /var/www/$2/public; 不然
location ~ \.php$ 会解析错误
如果在一个server块中为一个站点配置多个二级域名配置如下:
server { listen 80; server_name ~^(.+)?\.domain\.com$; index index.html; # 将domain.com 重定向到 www.domain.com if ($host = domain.com){ rewrite ^ http://www.domain.com permanent; } root /data/wwwsite/domain.com/$1/; }
站点目录结构如下:
/data/wwwsite/domain.com/www/ /data/wwwsite/domain.com/nginx/
时间: 2024-10-19 16:22:00