How do I customize nginx on AWS elastic beanstalk to loadbalance Meteor? How do I customize nginx on AWS elastic beanstalk to loadbalance Meteor? nginx nginx

How do I customize nginx on AWS elastic beanstalk to loadbalance Meteor?


With a LOT of help from AWS paid support, I got this working. The reality is I was not far off it was down to some SED syntaxt.

Here's what currently works (Gist):

option_settings:  - option_name: AWS_SECRET_KEY    value: <SOMESECRET>  - option_name: AWS_ACCESS_KEY_ID    value: <SOMEKEY>  - option_name: PORT    value: 8081  - option_name: ROOT_URL    value: <SOMEURL>  - option_name: MONGO_URL    value: <SOMEMONGOURL>    - option_name: MONGO_OPLOG_URL    value: <SOMEMONGOURL>  - namespace: aws:elasticbeanstalk:container:nodejs    option_name: ProxyServer    value: nginx    option_name: GzipCompression    value: true  - namespace: aws:elasticbeanstalk:container:nodejs:staticfiles    option_name: /public    value: /public    container_commands:  01_nginx_static:    command: |      sed -i '/\s*proxy_set_header\s*Connection/c \              proxy_set_header Upgrade $http_upgrade;\              proxy_set_header Connection "upgrade";\        ' /tmp/deployment/config/#etc#nginx#conf.d#00_elastic_beanstalk_proxy.conf

In addition to this you need to got into your Load balancer and change the Listener from HTTP to TCP:

enter image description here

described here: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.managing.elb.html).


Have you checked out Meteor WebSocket handshake error 400 with nginx? I think their configuration might be a bit different from yours. I'm in the same boat as you, trying to get this exact same set up working.


This no longer works. I posted more here https://solitaired.com/websockets-elastic-beanstalk but the jist is create a file in .ebextensions (called websockets.config for example) with the following:

files:  "/etc/nginx/conf.d/websockets.conf":    content: |      proxy_set_header Upgrade $http_upgrade;      proxy_set_header Connection "upgrade";