я пытаюсь настроить масштабируемое приложение symfony2, поэтому я прочитал эту страницу https://cloud.google.com/compute/docs/load-balancing/http/cross-region-example
Я сделал все, как они сказали, работает с простой конфигурацией nginx:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.html index.htm;
# Make site accessible from http://localhost/
server_name localhost;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ /index.html;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}
}
с этим я получаю положительный результат проверки здоровья, и если я попробую http: // ip_load_balancer я получаю страницу по умолчанию nginx.
Но когда я пробую свой настоящий конфрон nginx:
server {
listen 80;
server_name myapp-public.com;
root /usr/share/nginx/html/app-public/web;
recursive_error_pages off;
error_log /var/log/nginx/app_error.log;
access_log /var/log/nginx/app_access.log;
location / {
try_files $uri /app.php$is_args$args;
}
# PROD
location ~ ^/app\.php(/|$) {
internal;
fastcgi_pass php:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS off;
fastcgi_intercept_errors on;
}
}
Когда я пытаюсь http: // ip_load_blancer, я получаю ошибку сервера 502. Но когда я пытаюсь http: // ip_vm1, я получаю свое приложение (я открываю http-доступ для всех, чтобы проверить).
Также все проверки работоспособности терпят неудачу. Я действительно не понимаю, что не так, есть идеи?
Спасибо.
Прочитав ваш комментарий, я думаю, что это была моя проблема @George
Следует иметь в виду, что в случае сбоя проверки работоспособности перенаправление на конкретный экземпляр не произойдет. ==> Итак, я создаю конфигурацию по умолчанию для моего nginx (я добавляю ssl в конфиг)
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name _;
ssl_certificate /etc/nginx/ssl/secure.crt;
ssl_certificate_key /etc/nginx/ssl/mysecure.key;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
Во-вторых, вы должны принимать трафик от вашего балансировщика нагрузки и проверку работоспособности от Google на порт 80 экземпляра (и 443 в моем случае) cf.
Надеюсь, это поможет вам, если вы хотите получить более подробную информацию, или если вы чего-то не понимаете, просто скажите мне, я постараюсь объяснить больше.
PS: извините за ожидание