Search code examples
nginxload-balancingnginx-config

How to load balancing with nginx using uwsgi-socket


I am using socket file for accessing my application with nginx. my application consist of three server listening on 8080, 8081, 8082. server configuration under /etc/nginx/sites-available/config-file is below

server {
    listen 8080 default_server;
    listen [::]:80 default_server;
    root /var/www/html;
    index index.html index.htm index.nginx-debian.html;
    server_name my-server-one;
    location / {
            include uwsgi_params;
            uwsgi_pass unix:/tmp/server_one.sock;
    }


server {
    listen 8081 default_server;
    listen [::]:80 default_server;
    root /var/www/html;
    index index.html index.htm index.nginx-debian.html;
    server_name my-server-two;
    location / {
            include uwsgi_params;
            uwsgi_pass unix:/tmp/server_two.sock;
    }

server {
    listen 8082 default_server;
    listen [::]:80 default_server;
    root /var/www/html;
    index index.html index.htm index.nginx-debian.html;
    server_name my-server-two;
    location / {
            include uwsgi_params;
            uwsgi_pass unix:/tmp/server_three.sock;
    }

my question is how can i apply load balance with upstream? like below upstream container

upstream myserver {
    server localhost:8080;
    server localhost:8081;
    server localhost:8082;
}

Solution

  • Thanks i found the solution finally and want to share

    for setting up nginx load balancer i added the .sock file in upstream and pass the upstream to uwsgi_pass

    nginx load balancer with socket

    upstream myserver {
       server unix:///tmp/server_one.sock;
       server unix:///tmp/server_two.sock;
       server unix:///tmp/server_three.sock;
    }
    

    the /etc.nginx/sites-available/nginx-config files are below

    server {
       listen 8080 default_server;
       listen [::]:80 default_server;
       root /var/www/html;
       index index.html index.htm index.nginx-debian.html;
       server_name my-server-one;
       location / {
            include uwsgi_params;
            uwsgi_pass myserver;
    }
    
    server {
       listen 8081 default_server;
       listen [::]:80 default_server;
       root /var/www/html;
       index index.html index.htm index.nginx-debian.html;
       server_name my-server-two;
       location / {
            include uwsgi_params;
            uwsgi_pass myserver;
    }
    
    server {
       listen 8082 default_server;
       listen [::]:80 default_server;
       root /var/www/html;
       index index.html index.htm index.nginx-debian.html;
       server_name my-server-two;
       location / {
            include uwsgi_params;
            uwsgi_pass myserver;
    }