现在有两个静态前端静态项目: 静态官网、官网admin
现在需要将www.xxx.com指向官网 www.xxx.com/admin指向admin
思路:在nginx配置内开放一个本地端口 这里是开放88 用88监听本地的admin文件 之后监听开放给外界的80 /根目录配置官网 /admin反向代理到本地88端口 就可以完美解决了
解决方法:
server
{
listen 80;//默认指向
server_name xxx.xx.x.xxx;//这里填你的ip
location / {//这里默认指向我的官网
root /www/wwwroot/blog;
try_files $uri $uri/ /index.html;
}
location /admin {//这里由nginx代理到本地88端口
proxy_pass http://127.0.0.1:88/;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
expires 30d;
}
location ~ /\. {
deny all;
}
access_log /www/wwwlogs/80.log;
error_log /www/wwwlogs/80_error.log;
}
server
{
listen 88;
server_name xxx.xx.xx.xxx;
location / {//开放本地88端口 监听admin静态文件 上面会由80监听进行代理
root /www/wwwroot/blog_admin;
try_files $uri $uri/ /index.html;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
expires 30d;
}
location ~ /\. {
deny all;
}
access_log /www/wwwlogs/88.log;
error_log /www/wwwlogs/88.error.log;
}
坑点1:
配置完成后 打开官网 刷新404
解决方案:
server内监听当前根目录 增加 try_files $uri $uri/ /index.html;
location / {
root /www/wwwroot/blog;
try_files $uri $uri/ /index.html;
}
坑点2:
www.xxx.com/admin/js/test.js nginx会报404错, 看到nginx错误,
解决方案:
nginx默认配置有做 js缓存 ,有以下这段代码 删掉他就好了
location ~ .*\.(js|css)$ {
expires 12h;
access_log off;
}