我试图configuration一个可扩展的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访问testing)。
所有检查健康也失败。 我不明白什么是错的,有什么想法?
谢谢。
看完你的评论后,我认为是我的问题@George
您需要记住,如果检查运行状况失败,将不会有redirect到特定的实例。 ==>所以我创build一个默认configuration我的nginx(我在conf添加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; } }
第二件事,你必须接受来自负载平衡器的stream量和从谷歌健康检查到实例的端口80(在我的情况下是443)。
我希望这可以帮助你,如果你想要更多的细节,或者如果你不明白的地方,只要告诉我,我会尽力解释更多。
PS:抱歉等待