Nginx включает веб-сокет для динамического виртуального хоста - PullRequest
0 голосов
/ 27 марта 2019

У меня есть файл с именем /etc/nginx/sites-enabled/wildcard.dev.example.net.

Этот файл находится в среде разработчика, поэтому я загружаю папки на лету со следующейстрока:

server_name ~^(?<folder>[^.]*).dev.example.net;
root /home/foobar/Desktop/Projects/$folder/web;

Так что, если я добавлю папку с именем test, я смогу получить доступ к этой папке с помощью http://test.dev.example.net, теперь мне нужно добавить веб-сокет со следующей структурой ws: //socket.test.dev.example.net

Итак, я пытаюсь понять, как я могу достичь этого ...

map $http_upgrade $connection_upgrade {
    default upgrade;
    '' close;
}

upstream websocket {
    server 127.0.0.1:80;
}

server {
    listen 80;

    server_name ~^(?<folder>[^.]*).dev.example.net;


    charset utf-8;
    index index.php index.html index.htm;

    root /home/foobar/Desktop/Projects/$folder/web;
    error_log  /home/foobar/Desktop/Projects/logs/files/access.log;
    error_log  /home/foobar/Desktop/Projects/logs/files/error73.log;


    client_max_body_size 6000M;




    location ~* .(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf|js|css)$ {
        access_log        off;
        log_not_found     off;
        expires           30d;
        add_header Pragma "public";
    }

     location / {
        try_files $uri @rewriteapp;
        proxy_pass http://socket.$folder.dev.example.net:8080;

        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
    }

    location @rewriteapp {
        # rewrite all to app.php
        rewrite ^(.*)$ /app_dev.php/$1 last;
    }
    location ~ ^/(app|app_dev|config)\.php(/|$) {
        fastcgi_pass unix:/run/php/php7.3-fpm.sock;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param APPLICATION_ENV magana;
        fastcgi_param HTTPS off;
    }

    location ~ /\.ht {
        deny all;
    }
}

Есть идеи?Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...