Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vagrant和NGINX仅在80以外的端口上工作_Nginx_Docker_Vagrant_Vagrantfile - Fatal编程技术网

Vagrant和NGINX仅在80以外的端口上工作

Vagrant和NGINX仅在80以外的端口上工作,nginx,docker,vagrant,vagrantfile,Nginx,Docker,Vagrant,Vagrantfile,在本文中,我使用Vagrant来启动NGINX(通过Docker,但我认为这并不重要) 我的流浪汉看起来像这样: VAGRANTFILE\u API\u VERSION=“2” configure(Vagrant文件API版本)do | config| #分配框和虚拟机属性 config.vm.box=“ubuntu/trusty64” config.vm.provider“virtualbox”do | v| v、 内存=1024 v、 CPU=2 终止 #网络 config.vm.netwo

在本文中,我使用Vagrant来启动NGINX(通过Docker,但我认为这并不重要)

我的流浪汉看起来像这样:

VAGRANTFILE\u API\u VERSION=“2” configure(Vagrant文件API版本)do | config| #分配框和虚拟机属性 config.vm.box=“ubuntu/trusty64” config.vm.provider“virtualbox”do | v| v、 内存=1024 v、 CPU=2 终止 #网络 config.vm.network“forwarded_port”,guest:80,host:80#-->在本地主机上不工作 config.vm.network“forwarded_port”,guest:80,host:8391#-->WORKS localhost:8391 #供应 config.vm.provision:shell,内联:“sudo apt get update” config.vm.provision:docker 终止 目标是能够在
localhost
而不是
localhost:8391


我知道NGINX正在80上侦听,这是因为映射和在Vagrant中运行CURL的缘故。

通常,在使用Vagrant时,您不能绑定到主机上的端口1024或以下,除非您以root用户身份运行它。(与其他应用程序一样,显然不建议以root用户身份运行Vagrant。)


另一种选择是,如果您不需要特别连接到“localhost”,您可以尝试设置一个专用网络,以便您的“漫游”框有一个单独的IP地址。有关更多信息,请参阅。这样可以很好地连接到该IP上的端口80。

通常,在使用Vagrant时,您不能绑定到主机上的端口1024或以下,除非您以root用户身份运行它。(与其他应用程序一样,显然不建议以root用户身份运行Vagrant。)


另一种选择是,如果您不需要特别连接到“localhost”,您可以尝试设置一个专用网络,以便您的“漫游”框有一个单独的IP地址。有关更多信息,请参阅。这将允许您连接到该IP上的端口80。您可以使用setcap为特定二进制文件的非根用户启用1024以下的端口

这仅在Linux下有效,必须应用于Vagrant box,以便在机箱内使用端口80,以及您的主机,以便在主机上使用端口80

您需要程序包libcap2 bin,例如,带有apt:

  • sudo apt get安装libcap2 bin
  • sudo setcap cap_net_bind_service=+ep/path/to/nginx二进制文件
之后,允许NGINX使用机箱内的端口80作为用户漫游者。现在在您的主机上为Vagrant启用安装程序

  • sudo setcap cap_net_bind_service=+ep/path/to/vagrant二进制文件

您可以使用setcap为特定二进制文件的非根用户启用1024以下的端口

这仅在Linux下有效,必须应用于Vagrant box,以便在机箱内使用端口80,以及您的主机,以便在主机上使用端口80

您需要程序包libcap2 bin,例如,带有apt:

  • sudo apt get安装libcap2 bin
  • sudo setcap cap_net_bind_service=+ep/path/to/nginx二进制文件
之后,允许NGINX使用机箱内的端口80作为用户漫游者。现在在您的主机上为Vagrant启用安装程序

  • sudo setcap cap_net_bind_service=+ep/path/to/vagrant二进制文件

您可以使用
vagrant up
命令的输出编辑您的问题吗?您可以使用
vagrant up
命令的输出编辑您的问题吗?