服务器部署_linuix下 一台nginx 多域名之二
第二个需求:
1. 一台服务器部署了三个应用web1~web3对应三个域名:www.web1.com、www.web2.com、www.web3.com ,方法参照我另外一篇文章
2. 如果用非www.web1.com、www.web2.com、www.web3.com访问的话则自动跳转到www.web1.com上。
策略:
1. 安装tomcat、nginx 等,nginx安装在/export/servers/nginx目录中
2. 创建域名配置文件存放目录
mkdir -p /export/servers/nginx/conf/domains
3. 在创建的目录下简历域名配置文件www.web.com,并键入下面的内容:
upstream web1.com {
server 127.0.0.1:8001 weight=10 max_fails=2 fail_timeout=30s;
}
upstream web2.com {
server 127.0.0.1:8002 weight=10 max_fails=2 fail_timeout=30s;
}
upstream web3.com {
server 127.0.0.1:8003 weight=10 max_fails=2 fail_timeout=30s;
}
server
{
listen 80;
server_name ~^(www\.)?(.+)$;
index index.jsp index.html index.htm;
access_log /export/servers/nginx/logs/$2_access.log main;
error_log /export/servers/nginx/logs/$2_error.log warn;
#先判断访问的目标域名是否是已配置的三个
set $argEnd $2;
if ($argEnd != web1.com ){
set $flag "y";
}
if ($argEnd != web2.com ){
set $flag "${flag}y";
}
if ($argEnd != web3.com ){
set $flag "${flag}y";
}
if ($flag = yyy){
#如果不是则跳转到www.web1.com
rewrite ^/(.*)$ http://www.web1.com/$1 permanent;
}
#请求没有被以上规则匹配,则认为是已配置的三个域名之一
root /export/data/tomcatRoot/$2;
location / {
proxy_pass http://$2;
}
}