nginx.conf 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. worker_processes 1;
  2. events {
  3. worker_connections 1024;
  4. }
  5. http {
  6. include /etc/nginx/mime.types;
  7. default_type application/octet-stream;
  8. sendfile on;
  9. keepalive_timeout 65;
  10. server {
  11. listen 80;
  12. # Element2 子站
  13. location /element2 {
  14. alias /usr/share/nginx/html/element2/;
  15. index index.html index.htm;
  16. try_files $uri $uri/ /element2/index.html;
  17. # 动态替换 HTML 中的绝对路径
  18. sub_filter '="/js/' '="/element2/js/';
  19. # sub_filter '="/versions.json' '="/element2/versions.json';
  20. sub_filter '/versions.json' '/element2/versions.json';
  21. sub_filter '="/css/' '="/element2/css/';
  22. sub_filter '="/images/' '="/element2/images/';
  23. sub_filter 'href="/' 'href="/element2/'; # 处理超链接
  24. # sub_filter 'src="/' 'src="/element2/'; # 处理资源引用
  25. sub_filter_once off;
  26. sub_filter_types text/html;
  27. }
  28. # Element2 子站
  29. location = /versions.json {
  30. if ($http_referer !~ "/element2/?") {
  31. return 404;
  32. }
  33. alias /usr/share/nginx/html/element2/versions.json;
  34. }
  35. # Vue2 子站
  36. location /vue2 {
  37. # 精确配置别名路径(结尾必须带斜杠)
  38. alias /usr/share/nginx/html/v2.cn.vuejs.org/;
  39. # # 路径优先级校验
  40. # if ($request_uri !~ "^/vue2(/|$)") {
  41. # return 403;
  42. # }
  43. # 多维度路径重写保障
  44. index index.html;
  45. try_files $uri $uri/ /vue2/index.html;
  46. # 深度路径替换策略(覆盖所有常见静态资源)
  47. sub_filter_once off;
  48. sub_filter_types text/html text/css application/javascript;
  49. sub_filter '="/js/' '="/vue2/js/';
  50. sub_filter '="/css/' '="/vue2/css/';
  51. sub_filter '="/img/' '="/vue2/img/';
  52. sub_filter '="/fonts/' '="/vue2/fonts/';
  53. sub_filter 'href="/' 'href="/vue2/'; # 处理超链接
  54. sub_filter 'src="/' 'src="/vue2/'; # 处理资源引用
  55. }
  56. }
  57. }