nginx 服务器块显示欢迎页面

nginx 服务器块显示欢迎页面

我正在尝试将我的 rails 应用程序设置为特定子域。我正在使用带有 bitnami ruby​​stack VM 的 ec2 实例,我使用它和服务器的 ip 开发了应用程序,所以我知道 rails 和应用程序可以正常工作。

${nginx-dir}/conf/nginx.conf

server {
listen       80 default_server;
server_name  _;
server_name_in_redirect off;
proxy_intercept_errors on;
return 401;
}
include "/opt/bitnami/nginx/conf/vhosts/*.conf";

${nginx-dir}/conf/vhosts/backend.conf

upstream thin_instances {
   server 0.0.0.0:3000;
   server 0.0.0.0:3001;
   server 0.0.0.0:3002;
   fair;
}
 server {
    # port to listen on. Can also be set to an IP:PORT
    listen 80;
    server_name backend.mydomain.com;
      root /opt/bitnami/projects/myappname/public;
    location / {

      proxy_pass http://thin_instances;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      if (!-f $request_filename) {
        proxy_pass http://thin_instances;
      break;
      }
     }
}

这是我发帖或向域名发出请求时得到的结果

<html>
<head><title>401 Authorization Required</title></head>
<body bgcolor="white">
<center><h1>401 Authorization Required</h1></center>
<hr><center>nginx/1.2.4</center>
</body>
</html>

答案1

需要注意两件事:

  1. server中的块取代nginx.conf了您的自定义服务器定义,因为该块可能在包含自定义配置之前使用(与 Host 标头匹配的第一个服务器部分,因为它在这里是一个通配符,将是使用的配置,除非您设置server_name "")。由于document_root未在默认服务器块中设置,它将默认为类似于的内容,/var/www这可能不是您想要的。
  2. 请记住,大多数发行版中的默认 nginx 配置可能包括来自的所有 .conf 文件/etc/nginx/sites-enabled。您可能希望在该目录中创建一个指向 .conf 文件的符号链接/etc/nginx/sites-available。(如果您从 nginx.conf 中删除了其他所有内容,例如,您的列表是 nginx.conf 的逐字内容,那么您可能希望include /etc/nginx/sites-enabled/*;在末尾出现类似这样的内容。

答案2

我必须指出,blackbox222 提供的答案帮助我确定了问题的根源。最后,我更换了我的 DNS 提供商,换了一个可以正确配置 A 记录并且不会使用某种奇怪的重定向的提供商。

TL;DR:确保您的 DNS 配置正确

相关内容