vue为history路由模式,固定/api,/static前缀为php使用
server { listen 80; server_name localhost; set $static_root ''; # web目录 set $php_root ''; # php目录 root $static_root; index index.html index.htm index.php; location ~ \.php$ { root $php_root; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_buffer_size 128k; fastcgi_buffers 32 32k; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; } location / { try_files $uri $uri/ /index.html; } location ^~ /api/ { root $php_root; if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$1 last; break; } } location ^~ /static/ { root $php_root; access_log off; } # 首页不缓存 location = /index.html { add_header Cache-Control no-cache; add_header Pragma no-cache; add_header Expires 0; } location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ { expires 12h; log_not_found off; access_log off; } }
二级目录可使用此方法
server { listen 80; server_name localhost; root ''; index index.html index.htm; location ^~ /api/ { proxy_set_header HOST $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_pass http://localhost:8080; # proxy_pass http://localhost:8080/; #转发时想去除/api前缀可使用这条 } location / { try_files $uri $uri/ /index.html; } # 首页不缓存 location = /index.html { add_header Cache-Control no-cache; add_header Pragma no-cache; add_header Expires 0; } location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ { expires 12h; log_not_found off; access_log off; } }