因为主配置文件nginx.conf中一般配置的是一些通用的配置,我们可以重新复制一个nginx.conf文件起名为staticFile.conf
在主配置文件nginx.conf最后加入下面一段配置就可以读取到staticFile.conf配置文件并进行监听
: include /usr/local/nginx/conf/staticFile.conf;
如图所示:
staticFile.conf中配置如下:
server {
listen 8063;
server_name localhost;
access_log /data/wwwlogs/access_nginx.log combined;
root /data/wwwroot/default;
index index.html index.htm index.jsp;
#error_page 404 /404.html;
#error_page 502 /502.html;
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
#第一种配置方式
location /mater/file/ {
alias /cps_ggc/file/;
autoindex on;
}
#第二种配置方式
# location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp3|mp4|ico)$ {
# root /cps_ggc/file/;#指定素材存放路径
# expires 30d;
# access_log off;
# }
}
第一种配置方式直接访问http://ip:8063/mater/file/柜门.jpg 即可访问到/cps_ggc/file/下的静态文件
第二种配置方式放访问接口中带有指定的格式文件时会去访问指定目录/cps_ggc/file/下的静态文件
如果访问静态图片时出现403,没有权限访问
解决方法
1:nginx的目录里面没有默认文档,并且没有列出目录的权限
部分nginx打开格式:
vi {nginx}/conf/nginx.conf
添加一下静态资源的路径,把下面地址换一下添加到nginx的配置文档里面应该就可以解决了
#静态资源路径
location /static/ {
alias /www/wwwroot/www.django.cn/static/;
}
注意:这里只是添加了静态资源的路径,详细的配置路径还是需要大家参考规范的格式,别都删了
2:nginx没有访问目录的权限
进入到你网站所在的目录,执行以下代码
chmod -R 777 *
给予其当前目录访问权限
3:由于启动用户和nginx工作用户不一致所致
这个就是我当时遇到的问题了,当时之前检查了前面两项,发现还是不行。看了nginx报错也不行,后面才注意到这条。
这个就是由于nginx中通常会默认user为wwwuser wwww,而你在实际后台登录时,通常是作为管理员root(部分云的管理员用户不一样,比如腾讯云就是ubuntu)用户登录,而产生了启动用户和nginx工作用户不一致,导致权限问题。
解决方法:将nginx.config的user改为和启动用户一致
#改成你管理员用户的用户名,或者你启动用户的用户名
user root;
worker_processes auto;
error_log /www/wwwlogs/nginx_error.log crit;
pid /www/server/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;