标签: hostheaders

如何使用Node和Express执行客户/客户端样式的子域

如何允许客户使用域中的组织名称访问SaaS?

例如,Web应用程序example.com可能有2个客户,OrgA和OrbB.

登录后,每个客户都会被重定向到他们的站点orga.example.com/orgb.example.com.

一旦包含子域的请求到达节点服务器,我希望用单个'/'路由处理请求.在路由处理程序中,它只是检查主机头并将子域视为组织的参数.就像是:

app.get "/*", app.restricted, (req, res) ->
  console.log "/* hit with #{req.url} from #{req.headers.host}"
  domains = req.headers.host.split "."
  if domains
    org = domains[0]
    console.log org
    # TODO. do something with the org name (e.g. load specific org preferences)
  res.render "app/index", { layout: "app/app" }
Run Code Online (Sandbox Code Playgroud)

NB.domains数组中的第一项是组织名称.我假设主机头中没有端口,现在,我不考虑如何处理非组织子域名(例如www,博客等).

因此,我的问题更多的是如何配置node/express来处理具有不同主机头的请求.这通常使用通配符别名在Apache中解决,或者在使用主机头的IIS中解决.

Apache/Rails示例是@ http://37signals.com/svn/posts/1512-how-to-do-basecamp-style-subdomains-in-rails

如何在节点中实现相同的目标?

hostheaders connect node.js express

13
推荐指数
2
解决办法
4500
查看次数

使用Express和Node,如何跨子域/主机头维护会话

我有一个单节点服务器响应请求并根据主机头重定向用户.用法是静态/家庭网站位于www,每个用户都有自己的子域(即www.example.com和site.example.com).路由按照site.js.

当用户未登录时,他们被重定向到登录.

我发现当用户被重定向到他们的子域时,会话不会被维护.我想这是预料之中的,但我想知道是否有办法在两个子域中维持相同的会话.

我希望如果他们登录并返回到www.example.com,他们会看到一个不同的视图,其中包含一个指向注销/他们的仪表板等的链接.我现在的解决方法是,我想,只是创建他们的子域上的会话,如果他们确实返回到www,就好像他们没有登录一样.

任何人之前处理过这个问题或得到如何以这种方式处理会话的答案?

我认为问题可能在users.js中,我重定向到'http://site.example.com',因为它不是相对路径...

这是相关的代码(用户查找是使用MongoDB完成的,我把它留作工作正常 - 调用此服务的行是users.authenticate)...

server.js:

app.configure ->
app.set "views", "#{__dirname}/views"
app.set "view engine", "jade"
app.use express.bodyParser()
app.use express.methodOverride()
app.use express.cookieParser()
app.use express.session { 
    key: "KEY", 
    secret: "SECRET", 
    store: new MemoryStore(), 
    cookie: { 
        domain: 'example.com', 
        maxAge   : 1000*60*60*24*30*12 
    }
}
app.use express.static "#{__dirname}/public"
app.use express.logger "short"
app.use express.favicon "#{__dirname}/public/img/favicon.ico"
app.use app.router
Run Code Online (Sandbox Code Playgroud)

site.js:

module.exports = (app) ->
app.get '/', (req, res) ->
    console.log "/ hit with #{req.url} from #{req.headers.host}"
    domains = req.headers.host.split "."
    org = if domains …
Run Code Online (Sandbox Code Playgroud)

session hostheaders node.js express

12
推荐指数
1
解决办法
3万
查看次数

WCF使用计算机名称而不是IP地址,无法解析

我有一个在LAN上正常工作的WCF服务,但是当尝试从外部访问它时,服务引用失败.

我的WCF服务托管在使用静态IP无域的win2k3盒子上.

.net wcf hostheaders wcf-binding wcf-endpoint

8
推荐指数
3
解决办法
2万
查看次数

如何对IIS 6托管的WCF服务进行负载均衡?

我们使用BigIP在两个IIS服务器之间进行负载平衡.我们最近将IIS 6托管的WCF服务部署到这两台Windows Server 2003R2服务器上.

每个服务器配置有两个主机头:一个用于负载平衡器地址,另一个主机头仅指向该服务器.这样我们就可以引用负载均衡组中的特定服务器进行调试.

所以当我们运行时我们立刻得到了错误:

此集合已包含方案http的地址.此集合中每个方案最多只能有一个地址.参数名称:item

我做了一些研究,我们可以实现一个过滤器来告诉它忽略其中一个主机,但是我们无法从该地址访问服务器.

<serviceHostingEnvironment>
    <baseAddressPrefixFilters>
        <add prefix="http://domain.com:80"/>
    </baseAddressPrefixFilters>
</serviceHostingEnvironment>
Run Code Online (Sandbox Code Playgroud)

在这种情况下,什么是最佳解决方案,允许我们通过http://domain.com/service.svchttp://server1.domain.com/service.svc访问 WCF服务?

如果我们应该像某些网站建议的那样创建我们自己的ServiceFactory,那么有没有人有任何示例代码?

任何帮助深表感谢.

编辑:如果可能的话,我们需要能够从两个地址中的任何一个访问WCF服务.

谢谢.

wcf iis-6 hostheaders

7
推荐指数
1
解决办法
4431
查看次数

在ASP.NET中,是否可以按主机名输出缓存?即varybyhost或varbyhostheader?

我有一个网站,有许多主机标题.主题和数据取决于主机标头,不同的主机加载不同的外观网站.

所以让我们假设我有一个名为"Foo"的网站,它返回搜索结果.相同的代码运行下面列出的两个站点.它是相同的服务器和网站(使用主机标头)

  1. www.foo.com
  2. www.foo.com.au

现在,如果我去.com,该网站以蓝色为主题.如果我去.com.au网站,它的主题是红色.

根据主机名,相同搜索结果的数据不同:美国结果.com和澳大利亚结果.com.au.

如果我想使用OutputCaching,可以通过主机名来处理和分区吗?

我担心一个人访问该.com网站后(正确返回美国结果),第二个访问该.com.au网站并搜索相同数据的人将获得该.com网站的主题和结果.

缓存可能吗?

asp.net outputcache hostheaders vary

7
推荐指数
2
解决办法
1778
查看次数

如何使用PowerShell 1.0更改IIS6中所有站点的IP地址?

在Windows Server 2003下使用Powershell 1.0和IIS 6.

我有大约200个网站,我想更改IP地址(如"网站标识"部分"IP地址"字段中"网站"选项卡上的网站属性中所列.

我找到了这段代码:

$site = [adsi]"IIS://localhost/w3svc/$siteid"
$site.ServerBindings.Insert($site.ServerBindings.Count, ":80:$hostheader")
$site.SetInfo()
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做但是:

  1. 遍历IIS中的所有站点
  2. 不插入主机标头值,但更改现有标头值.

iis powershell iis-6 hostheaders powershell-1.0

4
推荐指数
1
解决办法
3435
查看次数

在单个umbraco实例上发布多个站点

我希望建立一个已经使用umbraco作为其内容管理系统的并行站点.新站点将共享管理员,模板,宏和媒体资源,但不会共享任何内容.如果我使用umbraco安装设置指向同一目录的多个主机头,如何根据访问的URL切换站点的顶级节点(home vs home2)?

sites hostheaders umbraco content-management-system

1
推荐指数
1
解决办法
5057
查看次数