繁体   English   中英

WAMP中不同端口上的多个虚拟主机

[英]Multiple Virtual Hosts on Different Ports in WAMP

所以我有这个问题......

我使用WAMP并在过去设置了完美的虚拟主机,但现在我已经达到了一些我从未预料到的东西。

我想这样做:

通过http:// localhost访问C:\\ wamp \\ www

通过http:// localhost:8080http://something.dev访问D:\\ somethingelse

我更喜欢使用正确的http://something.dev ,因为工作网站是http://something.co ,所以我可以将它们分开。

我已经按照指南和阅读论坛帖子,但我到目前为止所做的就是:

通过http:// localhosthttp://something.dev访问C:\\ wamp \\ www

通过http:// localhost:8080http://something.dev:8080访问D:\\ somethingelse

有人知道你会怎么做吗? 这是我的VirtualHost代码:

<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot "C:\wamp\www"
ServerName localhost
ServerAlias www.localhost.com
ErrorLog "logs/localhost-error.log"
CustomLog "logs/localhost-access.log" common
</VirtualHost>

<VirtualHost *:8080>
ServerAdmin webmaster@something
DocumentRoot "D:/something/www"
ServerName something.dev
ServerAlias www.something.dev
ErrorLog "logs/something-error.log"
CustomLog "logs/something-access.log" common
<directory "D:/something/www">
    Options Indexes FollowSymLinks
    AllowOverride all
    Order Allow,Deny
    Allow from all
</directory>
</VirtualHost>

在httpd.conf中我有这个

Listen *:80
Listen *:8080

我的hosts文件正在运行,并将这两个文件指向127.0.0.1

(我想这样做的原因是,当我在我的机器上编码时,我使用http://something.dev ,但我运行Livereload Windows,并在同一本地网络上的iPhone和iPad上同时测试我的网站,但没有任何访问iOS等效的hosts文件。它还允许我通过我的路由器上的端口转发只打开我的服务器的特定部分到互联网。)

我想你已经解决了这个问题。 无论如何,分享一些关于如何在Wamp中设置多个虚拟主机的好信息是很好的。 这对我有用:

http://www.kristengrote.com/blog/articles/how-to-set-up-virtual-hosts-using-wamp

在我的情况下,我正在使用端口8080和8181. 8080重定向到c:\\ wamp \\ www \\ myfolder下的子文件夹,而8181重定向到root c:\\ wamp \\ www。

为了使8181工作,我必须编辑httpd-vhosts.conf,hosts(在\\ drivers \\ etc文件夹中)和httpd.conf。

在httpd.conf中我的Apache正在侦听:

Listen 8080
Listen 8181

我也取消评论:

Include conf/extra/httpd-vhosts.conf

我的根指向

DocumentRoot "c:/wamp/www/myfolder"

根目录配置为:

<Directory "c:/wamp/www">
    Options Indexes FollowSymLinks
    AllowOverride All
     Order Deny,Allow
     Deny from all
     Allow from 127.0.0.1
     Allow from ::1
     Allow from localhost
</Directory>

并补充说:

<VirtualHost *:8181>
DocumentRoot "C:\wamp\www"
ServerName name-of-my-fake-server
</VirtualHost>

在httpd-vhosts.conf我设置:

NameVirtualHost *:8181

在主机(c:\\ windows \\ system32 \\ drivers \\ etc)中我添加了:

127.0.0.1       localhost
127.0.0.1       name-of-my-fake-server #My Test Site

这样做我现在有两个端口工作8080和8181:所以8080指向目录"c:\\wamp\\www\\myfolder"而另一个端口8181指向我的根文件夹"c:\\wamp\\www\\"

使用*作为主机名需要使用NameVirtualHost:

NameVirtualHost *:80
NameVirtualHost *:8080

对于那些使用MAMP的人,请编辑httpd.conf

nano /Applications/MAMP/conf/apache/httpd.conf

为每个端口添加Listen

Listen 80
Listen 8080

还有ServerName

ServerName localhost:80
ServerName localhost:8080

完成后,编辑httpd-vhosts.conf

nano /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf

定义NameVirtualHost

NameVirtualHost *:80
NameVirtualHost *:8080

还有VirtualHost

<VirtualHost *:80>
    DocumentRoot "/Users/yourUser/path/project1"
    ServerName project1.local
</VirtualHost>

<VirtualHost *:8080>
    DocumentRoot "/Users/yourUser/path/project2"
    ServerName project2.local
</VirtualHost>

当然,您需要在hosts文件中包含project1.localproject2.local

sudo nano /etc/hosts

并添加

127.0.0.1 project1.local project2.local

重新启动MAMP,您可以访问您的vhost

project1.local
project2.local:8080

project2也可以在您的网络中访问或使用外部IP(例如,从移动电话等其他设备进行测试)。 假设您的IP是192.168.1.10

192.168.1.10:8080

问题是关于它的一点。 但我认为它就在附近,可能对某人有帮助。

最近,当我需要通过一个外部IP地址和端口访问一些资源 (debian存储库,我的网站和phpmyadmin)时,我遇到了这个问题。

在得知问题后,我发现了一种名为reverse proxy技术。 它像代理,但服务器接受来自许多用户的所有连接并重定向到一个目标(您的服务器)。

我制作了简单的Docker镜像和docker -compose文件,并将其推送到github.com/urpylka/docker-nginx-reverse-proxyhub.docker.com

配置文件非常简单:

server {
    listen          80;
    server_name     smirart.ru robotic.lol;
    location / {
        proxy_pass  http://robotic.lol:1080/;
    }
}

server {
    listen          80;
    server_name     repo.smirart.ru;
    location / {
        proxy_pass  http://8.8.8.8:2080/;
    }
}

您可以将其用于由不同IP运行的少数Web服务器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM