关于二级域名的疑惑,nginx能解决这问题吗?

杨某某 发布于 2013/07/11 00:44
阅读 794
收藏 3
最近想对手里的小站做二级域名,首先到域名提供商解析了几个二级域名如“a.domain.com、b.domain.com、c.domain.com”,由于之前没做个二级域名,以为 域名提供商可以做URL转发,
我自以为可以这样
“a.domain.com”对应地址可以是118.111.10.12:80/channel.do?prefix=a
“b.domain.com”对应地址可以是118.111.10.12:80/channel.do?prefix=b
“c.domain.com”对应地址可以是118.111.10.12:80/channel.do?prefix=c
可是新网不能URL转发了.....


后台程序请求入口也写好了都如同“/channel.do?prefix=a”
现在该怎么办呢?
我把所有二级域名解析到同一个ip上,然后想通过nginx对域名“xxx.domain.com”中的“xxx”进行效验,


然后执行“/channel.do?prefix=a”这个请求


并且同时浏览器地址栏的URL保持http://xxx.domain.com不变


这样达到二级域名的效果,可是看了好多nginx文档,貌似做不了这个


有没有朋友指点下呢,或者别的办法都行,谢谢 

nginx里面部分配置是

upstream localhost{      
                 server localhost:8080;
                 server localhost:8081;
                 server localhost:8082;

         }

......

 server {

       listen       80;

       #这里用正则表达式表示了域名前缀,在什么地方用呢?

       server_name ~^(.+)?\.domain.com$;

       location  / {
           root   html;
           index  index.html index.htm;
           proxy_pass     http://localhost;
        }

}

 
加载中
0
z
zx32342342
proxy_pass啊, 另外nginx的server_name是可以使用正则的, 比如
server_name ~^(.+)?\.domian.com$;
proxy_pass channel.do?prefix=$1; #$1就是上面匹配到的二级域
z
zx32342342
回复 @杨某某 : 恩 那个proxy_pass那里, 比如 proxy_pass (.*) channel.do?prefix=$1
杨某某
杨某某
昨天我使用了Rewrite,可以把几个二级域名配置成功了,但是遇到一个问题,比如二级域名是“aaa.domain.com”点这个链接没问题,可是该二级域名下这样的请求“aaa.domain.com/xxx.html” 点了以后还是执行的“aaa.domain.com”,没请求到“/xxx.html”,我怀疑是Rewrite的正则规则没写对
0
月影又无痕
月影又无痕
楼上回复很正确
返回顶部
顶部