AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 826814
Accepted
François Noël
François Noël
Asked: 2017-01-18 09:04:11 +0800 CST2017-01-18 09:04:11 +0800 CST 2017-01-18 09:04:11 +0800 CST

Nginx代理依赖域名

  • 772

我正在使用 AWS 的 EC2 和 Nginx。

假设我有三个域名:domain1.com、domain2.com、domain3.com。假设我在三个不同的端口上有三个 rails 应用程序:3000、3001、3002。

所有这些域都在端口 80 上链接到我的服务器。

根据请求的 URL,我希望我的端口 80 将请求重定向到正确的端口。

我应该如何配置我的虚拟主机文件?我知道 If 块存在,但 Nginx 似乎不推荐它。我的计划是在我的 EC2 上拥有多个站点。

我无法在我的 Rails 应用程序端口上阻止服务器,因为它会阻止 Rails 服务器。

amazon-ec2 ruby-on-rails nginx
  • 2 2 个回答
  • 611 Views

2 个回答

  • Voted
  1. Tim
    2017-01-18T10:02:39+08:002017-01-18T10:02:39+08:00

    您已经说过您希望您的站点位于不同的端口上,并且您希望它们链接到端口 80。这还不清楚。

    Nginx 可以监听不同网站的 80 端口,你只需配置不同的域即可。例如

    server {
      server_name www.example.com;
      listen 80;
      return 301 https://www.example.com$request_uri;
    }
    
    server {
      server_name www.example.com;
      listen 443 ssl https;
      root /var/www/site;
      // Insert https stuff here
    }
    
    server {
      server_name www.example2.com;
      listen 80;
      root /var/www/site2;
    }
    
    server {
      server_name www.example3.com;
      listen 80;
      root /var/www/site3;
    }
    

    你也可以运行一个负载均衡器和多个 nginx 实例,但这毫无意义。

    • 1
  2. Best Answer
    Élie Deloumeau-Prigent
    2017-01-18T10:34:07+08:002017-01-18T10:34:07+08:00

    取决于哪个DOMAIN (?) :

    server {
        listen 80;
        server_name .domain1.com; # Wildcard domain
        return 301 $scheme://$host:3000$request_uri; 
        # use $host above because we use a wildcard domain
    }
    

    并为您的所有域和所有 Rails 应用程序/端口重复此服务器块

    • 1

相关问题

  • 权限被拒绝(公钥)。从本地 Ubuntu 到 Amazon EC2 服务器的 SSH

  • 管理员如何管理他们的 EC2 EBS 和快照?

  • 云有多大?[关闭]

  • EC2 映像启动

  • 如何将安全组添加到正在运行的 EC2 实例?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve