#nginx
#nginx
Вопрос:
Я использую nginx с AngularJS / node.js
Когда я захожу на веб-сайт
https://domainxyz/login
он автоматически пытается открыть https://domainxyz/app.html
Я хотел бы изменить ссылку на «app-new.html «.
Но я не вижу, где это сделать.
Мое веб-приложение было разработано кем-то другим, и я просто пытаюсь это исправить, поэтому я не уверен, где он реализовал эту маршрутизацию.
Мои доступные сайты (/etc/nginx/) выглядят так:
server {
listen 80;
listen [::]:80;
server_name domainxyz www.domainxyz;
return 301 https://domainxyz$request_uri;
}
server {
listen 80;
listen [::]:80;
root /var/www/html;
index index.html index.htm index.nginx-debian.html index.php;
server_name domainxyz www.domainxyz;
location / {
try_files $uri $uri/ =404;
}
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
location /hospital {
try_files $uri $uri/ =404;
}
location /old_doc {
try_files $uri $uri/ =404;
}
location /webrtc {
try_files $uri $uri/ =404;
}
location /docs {
try_files $uri $uri/ /index.php?r=$request_uri;
}
location /docs/admin/ {
try_files $uri $uri/ /docs/admin/index.php?$is_args$args;
}
location /docs/patient/ {
try_files $uri $uri/ /docs/patient/index.php?$is_args$args;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
rewrite "^/login" doc-register.html last;
rewrite "^/logout" doc-register.html last;
rewrite "^/register" doc-register.html last;
rewrite "^/dashboard" doctor.html last;
rewrite "^/waiting-room" doctor.html last;
rewrite "^/update-tan" doctor.html last;
rewrite "^/tans" doctor.html last;
rewrite "^/create-tan" doctor.html last;
rewrite "^/profile" doctor.html last;
rewrite "^/system-check" doctor.html last;
rewrite "^/plogin" pindex.html last;
rewrite "^/pdashboard" pindex.html last;
listen [::]:443 ssl; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/domainxyz/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/domainxyz/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 {
listen 80;
listen [::]:80;
server_name domainxyz www.domainxyz;
return 301 https://domainxyz$request_uri;
}
server {
listen 80;
listen [::]:80;
root /var/www/html;
index index.html index.htm index.nginx-debian.html index.php;
server_name domainxyz www.domainxyz;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
location /hospital {
try_files $uri $uri/ =404;
}
location /old_doc {
try_files $uri $uri/ =404;
}
location /webrtc {
try_files $uri $uri/ =404;
}
location /docs {
try_files $uri $uri/ /index.php?r=$request_uri;
}
location /docs/admin/ {
try_files $uri $uri/ /docs/admin/index.php?$is_args$args;
}
location /login {
try_files $uri $uri/ /index.html;
}
location /docs/patient/ {
try_files $uri $uri/ /docs/patient/index.php?$is_args$args;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
rewrite "^/login" doc-register.html last;
rewrite "^/reset" doc-register.html last;
rewrite "^/logout" doc-register.html last;
rewrite "^/register" doc-register.html last;
rewrite "^/dashboard" /doctor.html last;
rewrite "^/waiting-room" /doctor.html last;
rewrite "^/update-tan" /doctor.html last;
rewrite "^/tans" /doctor.html last;
rewrite "^/create-tan" /doctor.html last;
rewrite "^/profile" /doctor.html last;
rewrite "^/system-check" /doctor.html last;
rewrite "^/plogin" /pindex.html last;
rewrite "^/tan" /pindex.html last;
rewrite "^/pdashboard" /patient.html last;
rewrite "^/wartezimmer" /patient.html last;
rewrite "^/psystem-check" /patient.html last;
rewrite "^/videosprechstunde" /videostream.html last;
listen [::]:443 ssl; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/domainxyz/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/domainxyz/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
# Security headers
# add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
# add_header X-Frame-Options DENY;
# add_header X-Content-Type-Options nosniff;
# add_header Content-Security-Policy "default-src 'self' www.google-analytics.com ajax.googleapis.com www.google.com google.com gstatic.com www.gstatic.com connect.facebook.net facebook.com;";
# add_header X-XSS-Protection "1; mode=block";
# add_header Referrer-Policy "origin";
}
Что еще я мог бы проверить?
Спасибо.
Ответ №1:
Оказывается, что изменение файла с поддержкой сайтов выполнено правильно, однако ведущий / отсутствовал:
rewrite "^/login" /doc-register.html last;
И перезапускать нужно не сервер, а nginx!!!
Поэтому вместо использования
pm2 stop server
pm2 start server
… Я только что использовал это:
killall nginx
nginx
Тогда это сработает.
Заметка для себя: я величайший отладчик в мире.