簡體   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