我需要ports.conf Apacheconfiguration吗?

我正在使用nginx向Apache提供静态内容和代理请求,以便为Django提供服务。 我有多个域,每个域都有它自己的端口和Apache VirtualHostconfiguration。 例如,domain1.com proxy_pass为127.0.0.1:8000,domain2.com proxy_pass为127.0.0.2:8010等

我删除了NameVirtualHost并从ports.conf 。 任何我需要那里的理由? 听起来像每个域的VirtualHost伎俩。

您现在不需要它们,只需在VirtualHostconfiguration中定义它们即可。 如果在configuration中没有定义服务器,服务器将始终默认为标准端口,因此,如果您稍后再删除VHost,则不必担心。

你需要一个NameVirtualHost每个标准,它告诉Apache如何分stream传入的请求。 如果你想要在端口80上的基于名称的虚拟主机,你只需要

 NameVirtualHost *:80 

任何在端口80上连接的HTTP客户端都将按照'Name:' HTTP头进行分类,匹配<VirtualHost *:80>节点上的ServerName或ServerAlias(如果找不到相同的critera, )。

大多数情况下,您只需要两个基于名称的虚拟主机规则:端口80开启,端口443开启(后者仅对SNI /服务器名称指示有意义)。 这通常以自动的方式完成,如果mod_ssl被激活,端口443和*:433基于命名的虚拟主机被激活:

 NameVirtualHost *:80 Listen 80 <IfModule mod_ssl.c> NameVirtualHost *:443 Listen 443 </IfModule> 

在你的情况下,似乎你依靠通常的IP /端口为基础的虚拟主机。 在这种情况下,每个应用程序将需要相同的代码:

 Listen 800x <VirtualHost *:800x> ServerName app1 [...] </VirtualHost> 

而这里NameVirtualHost不需要的,因为你只有一个虚拟主机每个端口。 该

 服务器名称 

也大多是不相关的,它将被Apache用来引用错误的虚拟主机。