# upstream 指令定义了一个服务器组 # 低代码平台的api服务地址 upstream <%productname%>ApiService { # server 172.20.101.65:15010; # server 172.20.1.207:8088; server 172.20.101.90:18800; # 还可以为每个服务器设置权重、最大失败次数、超时时间等高级选项, # 例如:server 172.20.1.211:8080 weight=3 max_fails=2 fail_timeout=30s; } server{ set $my_path /home/workspace/webEngineering/nginxWebService/nginx1.24.0; listen <%port%>; server_name localhost; root $my_path/html; index index.html index.htm; # access_log /var/log/nginx/host.access.log main; gzip on; gzip_types text/plain text/css application/javascript; gzip_min_length 1024; gzip_vary on; underscores_in_headers on; client_body_temp_path $my_path; client_max_body_size 20M; location /api/hub { # add_header X-Config ipa; proxy_pass http://<%productname%>ApiService/api/rop; # ip后台服务运行地址 proxy_set_header X-Real-IP $remote_addr; add_header Access-Control-Allow-Origin '*'; add_header X-Real-IP $remote_addr; # add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS'; add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization'; proxy_buffer_size 1024k; proxy_buffers 16 1024k; proxy_busy_buffers_size 2048k; proxy_temp_file_write_size 2048k; # proxy_set_header Host $host:$server_port; # try_files $uri $uri/ @router; } location /api/rop { # add_header X-Config ipa; proxy_pass http://<%productname%>ApiService/api/rop; # ip后台服务运行地址 proxy_set_header X-Real-IP $remote_addr; add_header Access-Control-Allow-Origin '*'; add_header X-Real-IP $remote_addr; # add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS'; add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization'; proxy_buffer_size 1024k; proxy_buffers 16 1024k; proxy_busy_buffers_size 2048k; proxy_temp_file_write_size 2048k; # proxy_set_header Host $host:$server_port; # try_files $uri $uri/ @router; } # location /api/rops { # # add_header X-Config ipa; # proxy_pass http://codelitehubApiService/api/rops; # ip后台服务运行地址 # proxy_set_header X-Real-IP $remote_addr; # add_header Access-Control-Allow-Origin '*'; # add_header X-Real-IP $remote_addr; # # add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS'; # add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization'; # proxy_buffer_size 1024k; # proxy_buffers 16 1024k; # proxy_busy_buffers_size 2048k; # proxy_temp_file_write_size 2048k; # # proxy_set_header Host $host:$server_port; # # try_files $uri $uri/ @router; # } location /api/web { # add_header X-Config ipa; proxy_pass http://172.20.101.65:8001/api/web; # ip后台服务运行地址 proxy_set_header X-Real-IP $remote_addr; add_header Access-Control-Allow-Origin '*'; add_header X-Real-IP $remote_addr; add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization'; proxy_buffer_size 1024k; proxy_buffers 16 1024k; proxy_busy_buffers_size 2048k; proxy_temp_file_write_size 2048k; } location /crootfui/ { # 指定存放下载文件的目录路径 alias $my_path/html/<%productname%>/crootfui/; add_header Access-Control-Allow-Origin '*'; add_header X-Real-IP $remote_addr; add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization'; # always; add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0'; expires off; # 确保 Nginx 不会添加过期头来指示浏览器缓存内容。 etag off; # 禁用 ETag,因为 ETag 可能会导致浏览器认为内容没有变化,从而使用缓存版本。 } location / { # root html; alias $my_path/html/<%productname%>/; index index.html index.htm; # 使用try_files指令重定向所有非文件/目录请求到index.html,解决单页应用服务端路由的问题 # 注意这里的路径是相对于alias指定的路径 try_files $uri $uri/ /index.html; proxy_set_header X-Real-IP $remote_addr; add_header Cache-Control "no-store"; add_header X-Real-IP $remote_addr; gzip on; add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0'; expires off; # 确保 Nginx 不会添加过期头来指示浏览器缓存内容。 etag off; # 禁用 ETag,因为 ETag 可能会导致浏览器认为内容没有变化,从而使用缓存版本。 # expires 3600; # -1; # gzip_static on; # 对于静态文件index.html,使用gzip命令进行压缩后,生成的压缩包应该为index.html.gz。 } }