Tôi có một ứng dụng được phát triển bằng cách sử dụng angularjs và toàn bộ ứng dụng tải khi dist/folder được truy cập.nginx phục vụ từ tĩnh nếu không tìm thấy thử reverse proxy
gì đang cố gắng todo là, khi trang không tìm thấy trên angularjs, thử trên một reverse proxy, tôi đã cố gắng để làm việc thiết lập dưới đây nhưng nginx không cho phép thiết lập cùng một vị trí hai lần trong khối duy nhất
server {
listen 80;
server_name example.com;
keepalive_timeout 60;
client_max_body_size 10M;
root /var/lib/www/dist;
charset utf-8;
location/{
expires -1;
add_header Pragma "no-cache";
add_header Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0";
root /var/lib/www/dist;
try_files $uri $uri/ /index.html =404;
}
location/{
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_buffering off;
proxy_http_version 1.1;
proxy_set_header Connection "";
if (!-f $request_filename) {
proxy_pass http://app_root;
break;
}
}
error_page 500 502 503 504 /500.html;
location = /500.html {
root /var/lib/app/etc/templates;
}
}
về cơ bản, nếu URL 404'ed trên angularjs tôi muốn thử và chuyển nó đến proxy_pass http://app_root;
bất kỳ ai có thể tư vấn về cách đạt được thiết lập này?
Cảm ơn,
CẬP NHẬT
Vì vậy, đang cố gắng tiếp cận được đề xuất bởi "Mohammad AbuShady", và cập nhật cài đặt nginx của tôi để sau, nhưng vẫn không làm việc, thay vào đó nó cố gắng để tìm trang trong AngularJS ứng dụng và không di chuyển đến các thiết lập up_stream @proxy
upstream app_root {
server unix:/tmp/app_root.sock fail_timeout=0;
}
server {
listen 80;
server_name example.com;
keepalive_timeout 60;
client_max_body_size 10M;
root /var/lib/www/dist;
charset utf-8;
location/{
expires -1;
add_header Pragma "no-cache";
add_header Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0";
root /var/lib/www/dist;
try_files $uri$args $uri$args/ $uri/ /index.html @proxy;
}
location @proxy {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_buffering off;
if (!-f $request_filename) {
proxy_pass http://app_root;
break;
}
}
error_page 500 502 503 504 /500.html;
location = /500.html {
root /var/lib/app/etc/templates;
}
}
Vậy url thực sự là gì khi bạn hiển thị trang 404? –