mirror of
https://github.com/vitodeploy/vito.git
synced 2025-07-02 14:36:17 +00:00
Add site redirects (#552)
* feat(redirects): add redirects to sites * chore(style): fixed coding style issues * style: fix php-stan docblocks * style: pint cleanup * tests: fixed redirect test suite * feat: vhosts include additional configs * fix: use exact location matching * - add enums - use queues - use vhost rather than separate conf files - vhost formatter - cleanup * generate docs --------- Co-authored-by: Saeed Vaziry <mr.saeedvaziry@gmail.com>
This commit is contained in:
@ -1,3 +0,0 @@
|
||||
location {{ $from }} {
|
||||
return {{ $mode }} {{ $to }};
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
@foreach($site->activeRedirects as $redirect)
|
||||
location = {{ $redirect->from }} {
|
||||
return {{ $redirect->mode }} {{ $redirect->to }};
|
||||
}
|
||||
@endforeach
|
@ -1,7 +0,0 @@
|
||||
if ! echo '{!! $redirects !!}' | sudo tee /etc/nginx/conf.d/{{ $domain }}_redirects; then
|
||||
echo 'VITO_SSH_ERROR' && exit 1
|
||||
fi
|
||||
|
||||
if ! sudo service nginx restart; then
|
||||
echo 'VITO_SSH_ERROR' && exit 1
|
||||
fi
|
@ -1,9 +1,9 @@
|
||||
@if ($site->activeSsl && $site->force_ssl)
|
||||
server {
|
||||
listen 80;
|
||||
server_name {{ $site->domain }} {{ $site->getAliasesString() }};
|
||||
return 301 https://$host$request_uri;
|
||||
}
|
||||
server {
|
||||
listen 80;
|
||||
server_name {{ $site->domain }} {{ $site->getAliasesString() }};
|
||||
return 301 https://$host$request_uri;
|
||||
}
|
||||
@endif
|
||||
|
||||
@php
|
||||
@ -12,22 +12,22 @@
|
||||
|
||||
@if ($site->type === \App\Enums\SiteType::LOAD_BALANCER)
|
||||
upstream {{ $backendName }} {
|
||||
@switch($site->type_data['method'] ?? \App\Enums\LoadBalancerMethod::ROUND_ROBIN)
|
||||
@case(\App\Enums\LoadBalancerMethod::LEAST_CONNECTIONS)
|
||||
least_conn;
|
||||
@break
|
||||
@case(\App\Enums\LoadBalancerMethod::IP_HASH)
|
||||
ip_hash;
|
||||
@break
|
||||
@default
|
||||
@endswitch
|
||||
@if ($site->loadBalancerServers()->count() > 0)
|
||||
@foreach($site->loadBalancerServers as $server)
|
||||
server {{ $server->ip }}:{{ $server->port }} {{ $server->backup ? 'backup' : '' }} {{ $server->weight ? 'weight='.$server->weight : '' }};
|
||||
@endforeach
|
||||
@else
|
||||
server 127.0.0.1;
|
||||
@endif
|
||||
@switch($site->type_data['method'] ?? \App\Enums\LoadBalancerMethod::ROUND_ROBIN)
|
||||
@case(\App\Enums\LoadBalancerMethod::LEAST_CONNECTIONS)
|
||||
least_conn;
|
||||
@break
|
||||
@case(\App\Enums\LoadBalancerMethod::IP_HASH)
|
||||
ip_hash;
|
||||
@break
|
||||
@default
|
||||
@endswitch
|
||||
@if ($site->loadBalancerServers()->count() > 0)
|
||||
@foreach($site->loadBalancerServers as $server)
|
||||
server {{ $server->ip }}:{{ $server->port }} {{ $server->backup ? 'backup' : '' }} {{ $server->weight ? 'weight='.$server->weight : '' }};
|
||||
@endforeach
|
||||
@else
|
||||
server 127.0.0.1;
|
||||
@endif
|
||||
}
|
||||
@endif
|
||||
|
||||
@ -71,11 +71,11 @@
|
||||
|
||||
@if ($site->type === \App\Enums\SiteType::LOAD_BALANCER)
|
||||
location / {
|
||||
proxy_pass http://{{ $backendName }}$request_uri;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_pass http://{{ $backendName }}$request_uri;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
}
|
||||
@endif
|
||||
|
||||
@ -87,4 +87,6 @@
|
||||
location ~ /\.(?!well-known).* {
|
||||
deny all;
|
||||
}
|
||||
|
||||
@include('ssh.services.webserver.nginx.redirects', ['site' => $site])
|
||||
}
|
||||
|
Reference in New Issue
Block a user