事情经过
今天把新的Vue工程部署到nginx服务器上的时候,莫名其妙的网站就打不开了,报500系列错误。nginx服务器error.log日志提示各种错误(之前是没有这个问题的)
一开始报错favicon.ico
访问不到,发现是项目权限问题chmod一下就好了。但还是有错误…
出现的各种错误
1、rewrite or internal redirection cycle 系列错误。
解决办法
如图,将该行的last
改为break
。
2、"/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)问题
在关闭nginx服务器后,执行重新加载nginx配置命令的时候,报错没有nginx.pid
文件
: open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)
解决办法:
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
原理:
使用nginx -c的参数指定nginx.conf文件的位置
3、怀疑是工程权限问题
一开始查看项目的文件权限的时候,确实是权限不够的原因
解决办法
chmod -r 777 dist/
# 更改dist/文件夹的权限
4、"/root/VueProject/dist/index.html" failed (13: Permission denied)系列问题
4.1、路径配置问题
如上图,因为我把项目放在了root用户里面,所以user参数改成用户名(我的是root)
我们通常把Vue项目放在上图41
行的目录(var/)下,但是我放在了root用户的VueProject目录下,所以要进行修改,如图43行
(之前用42
行的路径也是行的,但是这次更新了Vue项目包后就不行了)。
总结
总结一下nginx.conf配置文件要修改的地方吧
#user nobody;
user root; # 如果项目不在根目录(在用户目录下),要指定用户名
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8081; # 你的服务的端口号
server_name localhost;
# server_name 39.102.63.221;
#root /var/www/VueProject/dist;
root /root/VueProject/dist; # 路径,必改。
location / {
try_files $uri $uri/ @router;
#root html;
index index.html index.htm;
}
location @router {
rewrite ^.*$ /index.html break; # break参数不报错不改
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}