因为Angular 进行服务端渲染,但是渲染完之后的项目有一些问题,毕竟是在node里面运行,所以用nginx进行判断,如果是百度蜘蛛进行访问,返回Angular ssr 服务端渲染,否则返回angular 客户端渲染。
正常 Angular 在nginx 的配置是这样
location / {
root /usr/local/test;
index index.html;
try_files $uri $uri/ /index.html;
}
Angular ssr项目是这样 ,这是用 pm2 启动 Angular 端口是8888
location / {
proxy_pass http://127.0.0.1:8888;
}
我们需要加上if判断是不是百度蜘蛛,段后号后面是没有斜线的
location / {
if ($http_user_agent ~* "Baiduspider|360Spider|bingbot|Googlebot|Sogou web spider") {
proxy_pass http://127.0.0.1:8888;
set $flag "${flag}1";
}
}
然后 这样即可
location / {
root /usr/local/resume;
index index.html;
try_files $uri $uri/ /index.html;
if ($http_user_agent ~* "Baiduspider|360Spider|bingbot|Googlebot|Sogou web spider") {
proxy_pass http://127.0.0.1:8888;
}
}