【问题标题】:Node.js + Nginx Setup: Could not access domain nameNode.js + Nginx 设置:无法访问域名
【发布时间】:2017-09-12 17:07:18
【问题描述】:

您好,我遇到了与How to set up nodejs + nginx on windows 8 相同的问题。我通过将其添加到主机文件中尝试了此链接中给出的解决方案,但它仍然无法正常工作。你能给我这个问题的其他解决方案吗?谢谢。

当我在浏览器中访问 robstodo.com 时,我有这个robstodo.com

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
	server_names_hash_bucket_size 64;
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
	
	upstream app_robstodo {
		server 127.0.0.1:3000;
	}

	server {
		listen 8080;
		server_name robstodo.com;
		access_log \logs\minitorials.log;

		location / {
		  proxy_http_version 1.1;
		  proxy_set_header Upgrade $http_upgrade;
		  proxy_set_header Connection "upgrade";
		  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;
		  proxy_set_header X-NginX-Proxy true;
		  proxy_pass http://app_robstodo/;
		  proxy_redirect off;
		}
	}
}

【问题讨论】:

  • 贴出你用过的nginx donfig? robstodo.com 也是注册域吗?如果不使用 DNS,您是否创建了主机条目?
  • 我在上面添加了 nginx 配置。 “ robstodo.com 也是注册域名吗?”我不确定我是否得到这个,但我只是在 C:\Windows\System32\drivers\etc\host 的主机条目中添加了这个域名然后添加 127.0.0.1 robstodo.com

标签: node.js nginx


【解决方案1】:

如果这不是注册域并且您使用的是 hosts 文件,那么除此之外:

127.0.0.1 robstodo.com

还要加上这个:

127.0.0.1 www.robstodo.com

因为这就是您在屏幕截图中使用的,www 子域。

您需要在主机文件、nginx 配置和浏览器中使用完全相同的域。就名称解析器而言,www.robstodo.com 与 robstodo.com 是一个完全不同的域。另请注意,您还需要定义 app_robstodo 域。

现在,我会尝试用小步骤来解决问题。您可以使用 IP 地址直接访问 Node 应用程序而无需代理吗?可以不用代理使用app_robstodo域名访问吗?可以用IP地址访问nginx代理吗?最后可以用域名访问nginx代理吗?

确保在每个步骤中使用正确的端口

【讨论】:

  • 1.) 感谢您的澄清。 :) 顺便说一句,我在hosts文件中添加了127.0.0.1 robstodo.com 127.0.0.1 www.robstodo.com ,然后运行nginx -s reload,但错误仍然相同。 2.) 你还定义了 app_robstodo 是什么意思?我已经在 nginx conf 中将其声明为 upstream app_robstodo { server 127.0.0.1:3000; }
  • 3.) 节点应用程序直接使用 IP 地址而不使用代理?我可以通过 127.0.0.1:8080 或 127.0.0.1:3000 在浏览器中访问它 4.) 你可以使用 app_robstodo 域名访问它吗?可以用IP地址访问nginx代理吗?可以用域名访问nginx代理吗? - 我是新手,你能给我一个如何执行这个的例子吗?谢谢
  • 嗨,我认为现在可以了。我直接输入 http:127.0.0.1:3000 来代理传递,而不是使用上游。感谢您的帮助。
猜你喜欢
  • 2019-07-28
  • 1970-01-01
  • 2016-12-08
  • 1970-01-01
  • 1970-01-01
  • 2019-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多