Siema,
zdeployowałem front w next js na vercelu na domena.pl
. Strapi jako cms wrzuciłem na nginx początkowo na innej domenie i jako subdomena admin.zxy.pl
, żeby sprawdzić czy będzie wszystko działać, bo czułem, że mogą być kłopoty jakbym od razu wrzucił to na tę samą domenę co front. Działało.
Teraz do frontu z vercelem na domena.pl
chcę skierować z nginx cms na domena.pl/admin
. Front działa, ale jak wejdę na domena.pl/admin
to zależnie od ustawień na vps dostaję 500 lub 404 jeśli dawałem domena.pl/admin
w *.conf
.
Da się w ogóle to tak zrobić, że w katalogu jest cms z innego serwera niż vercel i next.js, który normalnie spodziewałby się pod domena.pl/admin
czegoś z folderu /pages
?
Poniżej moje ustawienia. location
brałem z docsów strapi: https://docs.strapi.io/developer-docs/latest/setup-deployment-guides/deployment/optional-software/nginx-proxy.html
// config/server.js (cms)
module.exports = ({ env }) => ({
host: env("HOST", "0.0.0.0"),
port: env.int("PORT", 1337),
app: {
keys: env.array("APP_KEYS"),
},
url: "https://domena.pl",
});
# path: /etc/nginx/sites-available/domena_cms.conf
server {
listen 80;
server_name domena.pl www.domena.pl;
root /var/www/domena_cms;
index index.html index.htm index.nginx-debian.html;
# Static Root
location / {
root /var/www/domena_cms;
}
location /admin/ {
rewrite ^/admin/?(.*)$ /$1 break;
proxy_pass http://strapi;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $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_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_pass_request_headers on;
# try_files $uri $uri/ =404;
}
}
# path: /etc/nginx/sites-enabled/domena_cms.conf
server {
root /var/www/domena_cms;
index index.html;
server_name domena.pl;
location / {
root /var/www/html;
}
location /admin/ {
rewrite ^/admin/?(.*)$ /$1 break;
proxy_pass http://localhost:1337;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $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_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_pass_request_headers on;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/domena.pl/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/domena.pl/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
server_name domena.pl/ www.domena.pl/;
listen [::]:443 ssl; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/domena.pl/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/domena.pl/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = domena.pl) {
return 301 https://$host$request_uri;
} # managed by Certbot
server_name domena.pl;
listen 80;
return 404; # managed by Certbot
}
server {
if ($host = www.domena.pl) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
listen [::]:80;
server_name domena.pl www.domena.pl;