windows搭建ngnix图片服务器
一、配置http可以正常访问的图片服务器
先将图片放在一个文件夹下面
比如D:\server\img
下载一个nginx解压缩,打开nginx.conf文件
nginx默认端口号是80,先启动一下试试
打开cmd窗口,进入nginx.exe所在的目录下
执行命令start nginx.exe
通过任务管理器查询nginx是否运行
修改配置在server添加以下即可
1 2 3 4 | location /img/ { root D:/server/; autoindex on; } |
1)root则是将img映射到D:/server/img/;
2)autoindex on便是打开浏览功能。
执行nginx -s reload重启ngnix
http://localhost/img/1.png
浏览器访问成功!
二、配置https可以可以访问的图片服务器
修改https配置即可正常访问
https://localhost/img/11100000.png成功
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | server { listen 443 ssl; server_name localhost; client_max_body_size 35m; ssl_certificate cert/fullchain.pem; ssl_certificate_key cert/ private .key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { root html; index index.html index.htm; } location /img/ { root D:/server/; autoindex on; } } |
nginx配置时正则一般规则
语法规则: location [=|~|~*|^~] /uri/ { … }
= 开头表示精确匹配
^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。以xx开头
~ 开头表示区分大小写的正则匹配 以xx结尾
~* 开头表示不区分大小写的正则匹配 以xx结尾
!~和!~*分别为区分大小写不匹配及不区分大小写不匹配 的正则
/ 通用匹配,任何请求都会匹配到。
首先精确匹配 = ,其次以xx开头匹配^~ ,然后是按文件中顺序的正则匹配 ,最后是交给 / 通用匹配。
当有匹配成功时候,停止匹配,按当前匹配规则处理请求。
测试完毕关闭nginx
nginx -s stop
nginx配置文件有三部分组成
1.全局块
从配置文件开始到events块之间的内容,主要会设置一些影响nginx服务器整体运行的配置指令。
比如:worker_processes 1; worker_processes值越大,可以支持的并发处理量也越多。
2.events块
events块涉及的指令主要影响nginx服务器与用户的网络连接。比如:worker_connection 1024; 支持的最大连接数。
3.http块
nginx服务器配置中最频繁的部分,http块也可以包括http全局块、server块。
Java图片上传代码
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 | /** * 文件上传 */ @RestController public class FileController { @PostMapping (value = "/fileUpload" ) public String fileUpload( @RequestParam (value = "file" ) MultipartFile file) { if (file.isEmpty()) { System.out.println( "请选择图片" ); } String fileName = file.getOriginalFilename(); // 文件名 String suffixName = fileName.substring(fileName.lastIndexOf( "." )); // 后缀名 String filePath = "D:/images/" ; // 上传后的路径 fileName = UUID.randomUUID() + suffixName; // 新文件名 File dest = new File(filePath + fileName); if (!dest.getParentFile().exists()) { dest.getParentFile().mkdirs(); } try { file.transferTo(dest); } catch (IOException e) { e.printStackTrace(); } //返回图片名称 return fileName; } } |
ngnix转发
js css文件无法加载问题
location / { proxy_pass http://opcservice/hnairweb/; proxy_redirect off; proxy_set_header Host $host; proxy_hide_header Server; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_connect_timeout 10; proxy_send_timeout 10; proxy_read_timeout 10; proxy_intercept_errors on; proxy_buffering off; } #配置静态资源 解决js css文件无法加载无法访问的问题,注意末尾不能有 / location ~ .*\.(js|css|jpg|jpeg|gif|png|ico|pdf|txt)$ { proxy_pass http://opcservice; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理