upstream node {
server 127.0.0.1:3012 max_fails=0 fail_timeout=0;
}
server {
listen 80;
listen 443 ssl http2;
server_name ~^(?<sitename>.+)\.site\.ru;
rewrite ^(/.*)$ /$sitename$1 break;
root /var/www/projectname/static;
location / {
proxy_pass http://node;
}
location ~ ^/.+\.(jpg|png|txt|css|js)$ {
expires 1d;
}
}
А почему приложение "нельзя" запускать на 80-м - объяснения этому я никогда не встречал: все долдонять только, как попугаи, что "не рекомендуется", "не безопасно" и т.п. ерунду. Думаю, просто, на сервере может быть не одно приложение, а если их хотя бы два - они уже не могут слушать один и тот же порт. Другого у меня нет объяснения.
proxy_pass http://username.ru:8080/;
upstream apache {
server 127.0.0.1:8080 fail_timeout=0 max_fails=0;
}
server {
listen 80;
server_name "~^(?<userhost>username|username2|username3)\.ru$";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
proxy_connect_timeout 90;
location / {
proxy_pass http://apache; #Кстати, завершающий слэш не нужен, $uri передается начиная со слеша, так что будет задвоение
proxy_redirect off;
}
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|rar|tgz|gz|js|bzip2|zip|tar|tiff)$ {
root /home/$userhost/public_html;
}
}