我正在尝试配置一个可扩展的 symfony2 应用程序,所以我阅读了这个页面https://cloud.google.com/compute/docs/load-balancing/http/cross-region-example
我做了他们所说的每一件事,正在使用一个简单的 nginx conf:
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 的 conf 时:
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创建了一个默认的conf(我在conf中添加了ssl)
第二件事,您必须接受来自负载均衡器的流量和来自谷歌的健康检查到实例的端口 80(在我的情况下是 443)cf。
==> https://cloud.google.com/compute/docs/load-balancing/http/cross-region-example#shutting_off_https_access_from_everywhere_but_the_load_balancing_service
我希望这对您有所帮助,如果您想了解更多详细信息,或者如果您有不明白的地方,请告诉我,我会尽力解释更多。
PS:抱歉久等了