Nginx 搭建图片服务器 | 青训营笔记

119 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天

实现任务

在Linux系统上安装Nginx服务器,配置图片访问路径(主要是配置nginx.conf的图片路径), 通过浏览器访问指定路径中的图片;

1没有安装的看这里

[Nginx、Vsftpd 安装][juejin.cn/post/720149…]

2测试是否能够访问成功

image-20230220221513655.png

检查nginx安装位置

whereis nginx

3编辑配置文件

vim /etc/nginx/nginx.conf 

image-20230220221759214.png

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/目录下

image-20230220223020728.png

然后-------------报错!!!

image-20230220215917232.png

报错

然后就开始找度娘,度娘告诉我是 server_name 的问题

也就是说当你在浏览器中输入云服务器的 ip 地址,nginx无法将 公网 ip 解析成 localhost

image-20230220220055453.png

解决方案:

  1. 如果 nginx 安装在服务器上:

将属性 server_name 的值改为 自己的公网ip

  1. 如果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

重新测试,可以正常访问了

image-20230220223255702.png