如题,前台项目,ip 为 192.168.111.116, nginx 对于 nuxt的配置如下:
location / {
proxy_pass http://localhost:3000;
}
需要设置图片防盗链,防止非前台项目引用nuxt中的图片,
包括打包后的 _nuxt目录中的图片,
以及nuxt目录中的static文件中的文件
请问如何设置?
隐藏真实网址取消图片保存功能
这里我就偷懒了,直接上链接还有截图https://zh.nuxtjs.org/guide/installation
package.json的配置片段
然后将你的代码(.nuxt文件夹,static文件夹,nuxt.config.js和package.json这四个即可,注意.nuxt放到linux上面会是隐藏的)放上去服务器域名的非根目录(这里我只说非根目录的,比如我的域名www.test.com指向的目录为/home/webapps/aa/bb , 而我要把代码放到/home/webapps/aa/bb/gsyshop下面)
代码放上去之后npm install 安装依赖
依赖安装结束后就可以愉快的开发了 , 本地开发结束,npm run build打包然后将.nuxt替换到服务器对应目录即可,在服务器端npm run start
之后就可以通过http://你的域名/nuxtshop/来访问了
然后开启进程守护 pm2 start npm --name “my-nuxt” – run start
其中 “my-nuxt”的名称是 我们在package中的项目名称。
(有什么问题欢迎留言指正)
对于防盗链的需求,我们需要在Nginx的配置文件中添加相关的配置项。具体步骤如下:
在Nginx配置文件中找到需要防盗链的路径配置,一般情况下是在server块中的location配置中。
在location的配置项中添加以下代码:
valid_referers none blocked 192.168.111.116;
if ($invalid_referer) {
return 403;
}
这段代码的作用是设置有效的referers,即允许哪些来源可以访问该资源。在本例中,我们只允许IP地址为192.168.111.116的来源进行访问。如果referer不合法,即属于none或blocked或不在有效的referers列表中,则会返回403错误。
location ~* \.(gif|jpg|jpeg|png|svg|js|css)$ {
valid_referers none blocked 192.168.111.116;
if ($invalid_referer) {
return 403;
}
}
这段代码的作用与步骤2中的代码类似,但是对于静态资源来说,需要在location中添加正则表达式,指定需要防盗链的资源类型。
完整的Nginx配置示例代码如下(以localhost为例):
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://192.168.111.116:3000;
}
location /_nuxt/ {
valid_referers none blocked 192.168.111.116;
if ($invalid_referer) {
return 403;
}
}
location /static/ {
valid_referers none blocked 192.168.111.116;
if ($invalid_referer) {
return 403;
}
}
location ~* \.(gif|jpg|jpeg|png|svg|js|css)$ {
valid_referers none blocked 192.168.111.116;
if ($invalid_referer) {
return 403;
}
}
}
在本例中,我们对于根路径、_nuxt目录和static目录中的所有资源都进行了防盗链处理。其中,valid_referers中的none和blocked分别表示禁止referers为空和为blocked的来源进行访问,而192.168.111.116则为允许的IP地址。$invalid_referer是Nginx内置变量,用于检查referer是否合法。如果不合法,则返回403错误。
需要注意的是,虽然防盗链能够一定程度上防止图片被非法引用,但是referer可以被伪造,因此防盗链并不能完全保证资源的安全性。
同时,以上操作也需要根据实际情况进行调整,比如需要考虑是否存在CDN、是否需要允许其他IP地址进行访问等因素。