求教虚拟机如何绑定域名

2017-09-06 09:16:31 +08:00
 lml12377

是这样的,我的是 mac,装了一个 virtual box,里面是 centos 的一套 lnmp 环境,网络设置选择的 NAT,将 mac 的 8081 映射到虚拟机的 8081,虚拟机的 8081 是 nginx 其中一个网站根目录。

在 mac 的 /private/etc/hosts 中加入了 xxx.com localhost:8081,这个时候 nginx 相关 server 的 server_name 还是 localhost,在 mac 上访问 localhost:8081 没问题,但是访问 xxx.com 无效。

我应该怎么设置,才能在 mac 上访问 xxx.com 并让虚拟机来处理这个请求?

5207 次点击
所在节点    程序员
21 条回复
atc
2017-09-06 09:21:14 +08:00
nginx 的 server_name 需要加上 xxx.com
lengxx
2017-09-06 09:24:34 +08:00
hosts 上还能指定端口的?
UnisandK
2017-09-06 09:27:15 +08:00
在 mac 的 /private/etc/hosts 中加入了 xxx.com localhost:8081 ? hosts 能这么用?
panda1001
2017-09-06 09:28:09 +08:00
直接映射 80 不就好了
lml12377
2017-09-06 09:29:13 +08:00
@lengxx 这个比较蛋疼,mac 有一套默认的环境,80 已经被占用了
yu1u
2017-09-06 09:29:28 +08:00
如果用路由器的话,楼主用桥接吧,mac 一个网段,然后 nginx 绑定域名,如果还需要外网访问的话解析到公网地址,前提运营商给你的是公网 ip,然后在路由器上映射端口或 dmz ,如果只在内网访问,解析到内网 ip 就可以了!
hard2reg
2017-09-06 09:31:09 +08:00
hosts 不用指定端口……
server_name 加上你的域名
maojy1989
2017-09-06 09:32:04 +08:00
从来没听说过 hosts 能指定端口
UnisandK
2017-09-06 09:33:16 +08:00
@lml12377 你为啥要把虚拟机的端口映射到本地来然后用 localhost 访问。。直接虚拟机监听 80 然后 hosts 把域名改成虚拟机的 IP 不就行了吗
lml12377
2017-09-06 09:33:52 +08:00
@hard2reg 所以说要么在 mac 上直接开搞,要么把 mac 自带的那一套环境卸载了?。。。就是因为 80 端口用不了
hard2reg
2017-09-06 10:04:46 +08:00
@lml12377 最终的效果是什么
chztv
2017-09-06 10:05:40 +08:00
把 Mac 上的一套环境里 80 端口换个端口,80 给虚拟机就行了。hosts 指定端口是不行的。
MangozZ
2017-09-06 10:29:13 +08:00
所以为啥用 NAT ?
就算用 NAT, 虚拟机也有自己的 ip。
与其映射出来, 为什么不直接在 hosts 设置解析 xxx.com 虚拟机的 ip ?
丑人多作怪 [手动滑稽]
lgpqdwjh
2017-09-06 13:56:13 +08:00
缺乏基础知识,负分。 虽然倡导让自己的回复对别人有帮助!
yxn1910
2017-09-06 16:48:57 +08:00
比较简单的方式是把虚拟机网卡改为桥接,配置一个固定 ip,然后在 hosts 里把域名指到这个 ip 就可以。
还有个办法是虚拟机加块网卡,使用 host-only 方式,虚拟机上网仍然通过 nat 网卡,但是宿主机访问虚拟机走 host-only 网卡。
lml12377
2017-09-06 17:08:09 +08:00
@MangozZ 请问,你试过吗?
lml12377
2017-09-06 17:10:25 +08:00
@lgpqdwjh 不知道就不知道,装逼并不能显得你多高端~
lml12377
2017-09-06 17:15:10 +08:00
@yxn1910 谢谢,直接把 mac 自带的 apache 改改配置用起来了,你说的方法等有空试一下~
a128445
2017-09-07 00:41:39 +08:00
看你想怎么绑呗,只需要本地访问的话
(客户机的) host 改为 127.0.0.1 (虚拟机地址) xxx.com...
然后按照前面的人改 nginx 的 servername
就好了...

如果公网也可以访问...改 nginx 的 servername,不用改 host...DNS 指向公网 ip...
lgpqdwjh
2017-09-07 09:22:31 +08:00
@lml12377 喷我也不能挽回什么 “在 mac 的 /private/etc/hosts 中加入了 xxx.com localhost:8081,这个时候 nginx 相关 server 的 server_name 还是 localhost,在 mac 上访问 localhost:8081 没问题,但是访问 xxx.com 无效。” 多傻的提问。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/388490

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX