确保将域的 DNS 设置上的 A 记录设置为服务器的 IP 地址。

确保将域的 DNS 设置上的 A 记录设置为服务器的 IP 地址。

我在 aws 云上启动了一个 node.js 服务器,服务器的位置是 /home/ubuntu/home/fablab。我可以使用 nginx 在端口 80 启动我的 node.js 服务器,一切正常。

然后我关注教程为了在服务器上运行 node.js 和 nginx,我将 node.js 端口重新配置为 61337,在 /etc/nginx/sites-available 文件夹下创建一个 fablab.conf,然后 ln -s /etc/nginx/sites-available/fablab.conf /etc/nginx/sites-enabled/fablab.conf。这是我的 fablab.conf

server {
    listen 80;

    server_name fablab;

    location ~ ^/(images/|img/|javascript/|js/|css/|stylesheets/|flash/|media/|static/|robots.txt|humans.txt|favicon.ico) {
        root /home/ubuntu/node/fablab/public;
        access_log off;
        expires max;
    }

    client_max_body_size 16M;

    root /home/ubuntu/node/fablab;
    index /home/ubuntu/node/fablab/public/forum.html;   

    location / {
        access_log off;     
        proxy_pass  http://127.0.0.1:61337;

        proxy_set_header   X-Real-IP            $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
        proxy_set_header   Host  $http_host;
        #proxy_set_header  Host  $host;
        proxy_set_header   X-NginX-Proxy    true;

        # websockets support
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_http_version 1.1;
    }
}

我重新加载并重新启动nginx,当我转到服务器IP地址和端口80时,页面仍然是nginx的欢迎页面。

为什么到目前为止它不起作用,我错过了一切?我认为 fablab.conf 的关键是,proxy_pass http://127.0.0.1:61337已经是了吗?

我有两个困惑

  1. 我是否必须使用 /etc/nginx/sites-enabled 中的 default.conf,其他一些名称也可以?

  2. 在 conf 文件中,server_name 应该是主机名,如果我现在只有 IP 地址,没有主机名,该如何处理这个主机名。因为它在 AWS 上,我是否需要将其填写为我的 aws 服务器的域名,如 ec2-24-210-148-112.us-west-2.compute.amazonaws.com

  3. 在里面教程conf 文件中的 server_name 是这样说的:

    确保将域的 DNS 设置上的 A 记录设置为服务器的 IP 地址。

    您可以使用命令测试是否设置正确dig:dig yourdomain.com

这是什么意思?我该怎么做

答案1

您的配置似乎正在使用虚拟主机;换句话说,nginxserver{..}根据请求指定的主机决定“哪个”块与请求匹配。如果指定的主机名与任何 server_name 都不对应,您将最终得到默认的捕获所有站点。

您的主机名不是有效的 DNS 名称,但不必担心 - 输入fablab/etc/hostswinderz 将其放在 Windows\System 32\drivers\etc 中)类似这样的内容(指定您的 Web 服务器的 IP):

192.168.100.17 fablab

这应该允许您的主机将 fablab 解析为该 IP,然后 NGINX 应该能够将您的请求路由到正确的服务器。

希望能帮助到你!

相关内容