Назад | Перейти на главную страницу

Не удается связаться с nginx с хост-машины Vagrant

Я использую Ansible для компиляции и настройки Nginx внутри ящика Vagrant.

Если я сбегу curl http://localhost/ изнутри коробки получаю ожидаемый ответ (phpinfo()).

Если я перейду к URL http://testapp:8080/ с моего хост-компьютера Mac я не могу подключиться.

Мои конфигурации следующие:

ХОСТ: / etc / hosts

192.168.100.10 testapp

ВЕДУЩИЙ: vagrantfile

Vagrant.configure("2") do |config|

  config.vm.define "web" do |web_config|
    web_config.vm.box = "raring64"
    web_config.vm.box_url = "https://dl.dropboxusercontent.com/s/{{redacted}}/raring64.box"
    web_config.vm.network "forwarded_port", guest: 80, host: 8080
    web_config.vm.network "private_network", ip: "192.168.100.10"

    web_config.vm.provision :ansible do |ansible|
      ansible.playbook = "devops/webserver.yml"
      ansible.hosts = "webservers"
      ansible.inventory_file = "devops/hosts"
      ansible.verbosity = "vv"
      ansible.verbose = "true"
    end

    web_config.vm.provider "virtualbox" do |v|
      v.customize ["modifyvm", :id, "--memory", "256"]
    end
  end
end

ГОСТЬ: /etc/nginx-1.5.6/nginx.conf

user www-data www-data;
worker_processes  1;

error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;

events {
  worker_connections  768;
  multi_accept on;
}

http {

  include       /etc/nginx-1.5.6/mime.types;
  default_type  application/octet-stream;

  access_log    /var/log/nginx/access.log;

  sendfile on;
  tcp_nopush on;
  tcp_nodelay on;

  keepalive_timeout  65;

  server_tokens off;

  gzip  off;
  gzip_http_version 1.0;
  gzip_comp_level 2;
  gzip_proxied any;
  gzip_vary off;
  gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript application/json;
  gzip_min_length  1000;
  gzip_disable     "MSIE [1-6]\.";

  include /etc/nginx-1.5.6/sites-enabled/*;
}

ГОСТЬ: /etc/nginx-1.5.6/sites-enabled/testapp.conf

upstream phpbackend {
    server unix:/var/run/php-fpm-www.sock;
}

server {
    server_name  testapp;
    listen 0.0.0.0:80;
    root  /web/testapp/public;
    index index.php;

    access_log  /var/log/nginx/webvg.access.log;
    error_log /var/log/nginx/webvg.error.log debug;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass phpbackend;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /web/testapp/public/$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_param CACHE_HOST 127.0.0.1;
        fastcgi_param CACHE_PORT 6379;
        fastcgi_param NEO_HOST   127.0.0.1;
        fastcgi_param NEO_PORT   7474;
        fastcgi_param SERVER_ENV dev;
    }

    location ~ ^/(php_status|php_ping)$ {
        fastcgi_pass phpbackend;
        fastcgi_param SCRIPT_FILENAME /web/testapp/public/$fastcgi_script_name;
        include fastcgi_params;
        allow 127.0.0.1;
        deny all;
    }

    location /nginx_status {
        allow 127.0.0.1;
        deny all;
        access_log off;
    }

    location ~ /\.git {
        deny all;
    }
}

Может ли кто-нибудь заметить что-то очевидное, чего мне не хватает?

Большое спасибо

Возможно, я схожу с ума, но я думаю, что ваше приложение действительно работает http://192.168.100.10:80 (и это должно работать как с хостом, так и с гостем, или testapp.com:80 только от хоста), а не порт 8080.

Ссылка 8080 относится к порту, переадресованному с хоста Mac, где localhost:8080 должен работать, поскольку он указывает на 192.168.100.10:80 на гостя.

Итак, я отредактировал файл / etc / hosts, чтобы указать на 127.0.0.1 вместо адреса, определенного в vagrantfile, и теперь я могу получить доступ к веб-сайту с хост-машины.