这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天
实现任务
在Linux系统上安装Nginx服务器,配置图片访问路径(主要是配置nginx.conf的图片路径), 通过浏览器访问指定路径中的图片;
1没有安装的看这里
[Nginx、Vsftpd 安装][juejin.cn/post/720149…]
2测试是否能够访问成功
检查nginx安装位置
whereis nginx
3编辑配置文件
vim /etc/nginx/nginx.conf
在 http { 下面添加 server{...} 中的内容
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location /images/ {
root /home/uftp/;
autoindex on; #开启nginx目录浏览功能
}
location / {
root html;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
解析:
root 是将 images 映射到 /home/uftp/images/
autoindex on; 开启nginx目录浏览功能
修改用户访问权限:
chown uftp /home/uftp
chmod 777 -R /home/uftp
4上传文件
通过xftp上传文件到 /home/uftp/images/目录下
然后-------------报错!!!
报错
然后就开始找度娘,度娘告诉我是 server_name 的问题
也就是说当你在浏览器中输入云服务器的 ip 地址,nginx无法将 公网 ip 解析成 localhost
解决方案:
- 如果
nginx安装在服务器上:
将属性 server_name 的值改为 自己的公网ip
- 如果
nginx安装在本地也同样报错?
情况一:浏览器缓存问题
最常见的情况了。这种情况在浏览器设置里把缓存和历史都清一下,或者换一个浏览器,再重新访问地址。
Ctrl+Shift+Del
可直接打开清除缓存的对话框
情况二:起了多个nginx服务
用 ps -ef | grep nginx命令看看是否起了多个nginx服务,再用kill -9 进程号命令直接控制台杀掉所有nginx服务,再手动重新起一遍 nginx:
情况三:hosts文件没有做配置
关于配置hosts与配置nginx的关系请自行度娘
情况四:电脑 代理 没有关
重启服务
若之前没有关闭nginx服务,先停止再打开,如果已关闭,可以直接输入启动服务的命令
停止nginx服务命令:
systemctl stop nginx.service
启动nginx服务命令:
systemctl start nginx.service
热部署nignx服务命令:
(但是不推荐使用这个命令,这个命令有时候是不起作用的,不如直接停了再启动)
/usr/sbin/nginx -s reload
重新测试,可以正常访问了