我看到了很多关于nginx+node.js的教程,但我可以设置每个域,就这样,没有限制吗?我不明白它是怎么工作的



我看到:http://wellconsidered.be/post/10519707671/node-js-on-nginx和Node.js+Nginx-现在怎么办?

但在他们的教程中放:

server_name www.yoursite.com;

server_name yourdomain.com yourdomain;

但在我的情况下,我没有域,我在企业中的机器有一个静态IP(192.168.1.16)。我应该将server_name设置为192.168.1.16?但无论如何,我也可以设置到www.google.com?我无法理解这些限制,也无法理解server_name变量的具体作用。

我也看到

listen   80;
server_name www.yoursite.com;

在这种情况下,我为什么要听80?它到底是什么的端口,是本地服务器的端口还是什么?

我想nginx应该是服务器的全局路由器,在它的静态ip(192.168.1.16:不知道端口??这里很重要?)上收到的每个请求都会重定向到内部ip,这就是为什么我不明白为什么我应该定义server_name。。

我希望能给一个从未使用过服务器的人一个更好的解释。

我对ubuntu和服务器配置非常陌生,所以这可能是一个非常明显的问题。

1)server_name参数的原因是几个不同的域名都可以指向同一个IP地址。当浏览器连接到包含域名的URL时,它首先进行DNS查找以找到合适的IP地址。然后,它连接到该地址并建立HTTP连接,该连接包括一个由Host:和URL中的域名组成的标头。这个头告诉服务器请求是针对哪个域的。

在正常情况下,服务器不会在Host:标头中看到特定域名,除非DNS将该域名解析为其IP地址。因此,如果你在server_name字段中输入"www.google.com",服务器看到它的唯一方法就是编辑你的hosts文件,添加一个带有你的IP地址的"www.google.com"条目,因为这是你的操作系统的DNS解析程序要查找的第一个位置(当然,你的浏览器,但其他人的浏览器,总是会转到你的服务器,而不是谷歌的)。

如果你没有域名,你可以编造一些东西;如果您只通过数字IP URL访问它,服务器将永远不会真正看到它。

2) 80是HTTP服务器的默认端口:除非您在URL中明确指定另一个端口,否则将连接到端口80。一台服务器可以监听多个端口,但也可以让多台服务器监听多个港口。因此,服务器需要知道它应该监听哪些端口

相关内容

最新更新