繁体   English   中英

Vagrant和NGINX仅适用于80以外的端口

[英]Vagrant and NGINX only works on ports other than 80

出于本文的目的,我正在使用Vagrant(通过Docker启动NGINX),但这并不重要,我认为这并不重要。

我的无业游民如下所示:

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

  #Assign Box and VM Properties
  config.vm.box = "ubuntu/trusty64"

  config.vm.provider "virtualbox" do |v|
    v.memory = 1024
    v.cpus = 2
  end

  # Network
  config.vm.network "forwarded_port", guest:80, host: 80  #--> DOESN'T WORK localhost
  config.vm.network "forwarded_port", guest:80, host:8391 #--> WORKS localhost:8391

  # Provision
  config.vm.provision :shell, inline: "sudo apt-get update"
  config.vm.provision :docker

end

目标是能够在localhost而不是localhost:8391上对NGINX进行历史记录localhost:8391

我知道NGINX由于映射以及在Vagrant中运行CURL而正在监听80。

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

这仅在Linux下有效,必须将其应用于“ Vagrant”框,以使用该框内的端口80,以及您的主机,以使用主机上的Port 80。

您需要软件包libcap2-bin,例如,带有apt:

  • 须藤apt-get install libcap2-bin
  • 须藤setcap cap_net_bind_service = + ep / path / to / nginx-binary

之后,NGINX被允许作为用户游民使用盒子内的端口80。 现在,在主机上启用Vagrant的设置。

  • 须藤setcap cap_net_bind_service = + ep / path / to / vagrant-binary

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

或者,如果您不需要连接到“本地主机”,则可以尝试建立专用网络,以便您的Vagrant框具有单独的IP地址。 有关更多信息,请参见http://docs.vagrantup.com/v2/networking/private_network.html 那应该可以让您连接到该IP罚款的端口80。

暂无
暂无

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

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