可能重复:
我可以在OS X上的/ etc / hosts的条目中指定一个端口吗?
我有NGINX端口80和端口8080上的APACHE(Listen 8080)。
在Apache上,我有几个虚拟主机通过端口8080。
之前(当我在端口80上运行apache时)我在/ etc / hosts文件上有了域 – > ip映射:
127.0.0.1 my-domain.dev
但现在我还需要指定端口,我该怎么做呢?
我正在运行Mac OS 10.7(Lion),我的VirtualHost如下所示:
NameVirtualHost *:8080 <VirtualHost *:8080> ServerName localhost DocumentRoot "/Library/WebServer/Documents" </VirtualHost> <VirtualHost *:8080> ServerName my-domain.dev DocumentRoot "/path/to/my/deploy/folder" <Directory "/path/to/my/deploy/folder"> Order allow,deny Allow from all AllowOverride All </Directory> </VirtualHost> (...)
你不能。 / etc / hosts与DNS的工作方式类似,根本不处理端口。 它只是将一个名字parsing为一个IP地址。 你必须在地址的末尾input:8080。
你不能在主机上编写端口,而在主机中的旧设置改变的端口将被访问,你只需要添加:8080到URL。
如果你想离开服务器在8080端口,但使该端口默认的HTTP而不是80(为了使用旧式的URL),你必须添加SRVlogging的区域定义(并有运行DNS服务器,甚至本地,与你的域,在这个服务器中定义)
你把它放在你的httpd.conf中而不是/ etc / hosts中
Listen *:8080 <VirualHost *:8080> stuff here </VirtualHost>
正如其他人所说,你不能使用hosts文件来定义Apache正在监听的端口。 当Apache在端口80上侦听时,不必提供端口的原因是端口80是http协议的默认端口。 如果您不想在URL中指定端口号,请考虑设置nginx以反向代理Apache网站。