繁体   English   中英

在Nginx服务器中创建子域

Subdomain creation in nginx server

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在尝试重定向/重写url,以为子页面创建子域。 例如: http : //example.com/user将以http://user.example.com返回url,但无法确定任何方式。 我的应用程序位于RailsNginx服务器上的ruby中 有什么窍门吗?

3 个回复

以下应注意子域重定向。

server {
    server_name example.com;

    location ~ ^/(?<user>[^/]+)/?$ {
        return 301 $scheme://$user.$server_name;
    }
}

您最好查看Nginx上的通配符子域 ,并为用户提供Rails路由。

请记住,Nginx没有与数据库的连接。 因此, Nginx conf实际上只需要能够通过服务器将Web流量发送到Rails应用程序。

然后, 如果有用户存在,则可以使用Rails应用程序路由将流量发送到特定的用户页面。 您将有一个constraint

-

这是我要做的:

/etc/nginx/nginx.conf (or wherever your nginx config is stored)
server {
    server_name yourdomain.com *.yourdomain.com;
    ...
}

这将使您能够将任何子域请求传递到Rails应用。

然后,我将在您的Rails routes执行此操作:

config/routes.rb
#put this at the top of the file so it does not conflict
get '', to: 'users#index', constraints: lambda { |request| User.exists?(name: request.subdomain) }

您可以在Rails应用中进行操作。 只需将一条规则添加到您的路由文件中:

get '/', to: 'users#show', constraints: { subdomain: /\\d+/ }

然后,无论您访问*.example.com是什么,它都会重定向到users#show

有关更多信息,请检查本教程。Rails Routing Guide ,第3.8部分。

否则,您可以在nginx config中进行配置重写。 我不确定它是否有效,请查看此指南

server {
  listen       80;
  server_name  user.example.com;
  return 301 example.com/user
}

希望对您有所帮助。

更新

您只需要重写您的nginx配置。

server {
  listen       80;
  server_name  example.com;
  rewrite \/home$ $scheme://home.example.com;
}

然后保存配置,使用sudo service nginx reload重新加载nginx sudo service nginx reload以重新加载配置文件。

让我知道您是否仍然担心。

2 nginx重定向子域到单独的服务器ip

我有一个使用 ddclient 管理的动态 IP。 我使用 no-ip 来维护指向我的 IP 的主机名。 我有 www.somename.com、sub.somename.com 和 app.somename.com。 显然,这些都指向我的IP。 前两个是运行 NGINX 的服务器 (server ...

3 使用Nginx将子域传递到不同的Apache服务器

我有3个服务器:1个Nginx和2个Apache Web服务器 所有流量都需要通过Nginx到达apache服务器 对于将域尚未指向我的Nginx服务器的客户端,无法将“开发”子域传递到正确的服务器。 我有一个业务“ mydomain.com”的根域,因此“ web1.myd ...

4 为子域配置服务器时 NGINX 无法工作

nginx.service 的作业失败,因为控制进程退出并显示错误代码。 有关详细信息,请参阅“systemctl status nginx.service”和“journalctl -xe”。 在此提示之前,服务器工作正常,但是当我尝试为子域配置服务器时,它无法正常工作,出现此错误。 还有详 ...

6 在asp.net中的其他服务器上创建子域

我想在asp.net中创建子域。 在本地IIS服务器上,它运行良好,并且代码生成了一个新网站。 问题是,我想在Server(另一台PC)上创建网站。以下代码在本地IIS服务器上生成网站。 这是我的代码。 在此先感谢您的帮助。 我想创建网站就像下面的服务器的图片(带IIS服务器的另 ...

7 如何在 apache(xampp) 服务器中创建子域?

一段时间以来,我一直在尝试在本地 xampp 安装中创建子域。 我尝试编辑我的 httpd.conf 文件并输入以下内容: 我还编辑了我的 windows 主机文件并输入:127.0.0.1 ecomm.localhost 但是当我在我的 Firefox 中输入“ecomm.localhost ...

8 在Nginx服务器上设置多个域

我在ubuntu上有一台nginx服务器上运行一个应用程序。 我想让多个域指向该服务器。 目前,我的/ etc / nginx / sites-available / default看起来像这样: (website1.com只是一个示例,因为我不想透露自己的真实域名) 当有 ...

10 这可以在本地服务器上创建子域吗?

我正在使用 ZF3 和我的与本地服务器相关的要求进行项目。 假设用户“test”登录系统,那么该用户的 url 应该是http://test.10.1.1.55 我已经用谷歌搜索了这个并找到了一篇文章使用 .htaccess (PHP) 即时创建子域 对于生产环境子域工作正常,但不适用于开发环境。 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM