Я использую 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, и теперь я могу получить доступ к веб-сайту с хост-машины.