0

I have a domain i call it <domain> and ip call <ip> and port <my-local-port>, i wan't using nginx on my server (dns binded to my server success), my problem is that reverse proxy ws:// protocole to my server i send my request in two link:

  • https://<ip>:<my-local-port>

  • ws://<ip>:<my-local-port>

for https i configurate nginx as:

server {
      listen       443;
      server_name  <domain>    www.<domain> ;

      location / {
        proxy_pass       http://localhost:<my-local-port>;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
      }
}

i bind https://<domain> into my local port <my-local-port>.

how can i bind ws://<domain> into local port <my-local-port> ?

Morteza j8
  • 103
  • 4

1 Answers1

0

First define a websocket upstream:

upstream websocket {
   server <ip>:<my-local-port>;
}

Then a server to upgrade the http connection to websocket:

map $http_upgrade $connection_upgrade {
   default upgrade;
   '' close;
}
server {
   listen 8020;
      location / {
         proxy_pass http://websocket;
         proxy_http_version 1.1;
         proxy_set_header Upgrade $http_upgrade;
         proxy_set_header Connection $connection_upgrade;
         proxy_set_header Host $host;
      }
   }
}

Source

Jonathan.Rosa
  • 189
  • 1
  • 7