Nginx 搭建图片服务器

实现步骤

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

1没有安装的看这里

[Nginx、Vsftpd 安装][https://juejin.cn/post/7201491839815368765]

2测试是否能够访问成功

image-20230220221513655

检查nginx安装位置

1
whereis nginx

3编辑配置文件

1
vim /etc/nginx/nginx.conf 

image-20230220221759214

http { 下面添加 server{…} 中的内容

{
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

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目录浏览功能

修改用户访问权限:

1
chown uftp /home/uftp/*
1
chmod 777 -R /home/uftp

4上传文件

通过xftp上传文件到 /home/uftp/images/目录下

image-20230220223020728

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

image-20230220215917232

报错

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

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

image-20230220220055453

解决方案

  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服务命令:

1
systemctl stop nginx.service 

启动nginx服务命令:

1
systemctl start nginx.service 

热部署nignx服务命令:

(但是不推荐使用这个命令,这个命令有时候是不起作用的,不如直接停了再启动)

1
/usr/sbin/nginx -s reload

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

image-20230220223255702