请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

nginx反向代理问题

先说一下我的情况,我刚学完8-9小节。
我的FTP服务器是在CentOS6的虚拟机里搭建的,我是在Windows下运行我的代码的。
我的mmall.properties文件截图如下:
图片描述
然后是我的nginx中的image.imooc.com.conf文件,截图如下:
图片描述
我的C:\Windows\System32\drivers\etc\hosts文件截图如下:
图片描述
我对nginx运行的理解是这样的:它会将image.imooc.com这个域名转化为ftp://172.20.10.10这个域名,这是我虚拟机上的FTP服务器的ip地址,然后我去访问虚拟机中/ftpfile/img这个文件夹,这样就成功地将文件成功地上传到了我的虚拟机的FTP文件夹里。
可是,我上传文件时是成功的,如下图所示:
图片描述
但是我如果点击上图中的链接,我是无法访问到该图片的,浏览器显示如下图所示:
图片描述
这是为什么呢?
我做过的尝试:
(1)如果我直接访问172.20.10.10,是可以成功的,如下图所示:
图片描述
这说明我的FTP服务器是开启的,且能够正常访问的。
(2)如果我直接访问image.imooc.com,将跳出nginx的欢迎页面,如下图所示:
图片描述
说明nginx的运行原理并不是我之前想象地那样,nginx会将image.imooc.com这个域名简单地替换为ftp://172.20.10.10这个域名,但这张图至少证明了我的nginx是启动了的。
(3)如果我将mmall.properties配置文件中的ftp.server.http.prefix直接改成ftp://172.20.10.10/,那么我的程序是能够正常运行的,且我的虚拟机的FTP上能接收到上传的图片文件。
(4)我的nginx.conf文件里已经加了“include vhost/*.conf;”。
最后再简单总结一下我想做的操作和我的问题是什么:
我希望image.imooc.com这个域名能够访问虚拟机上的FTP服务器,即虚拟机上的/ftpfile/img文件夹(或者说成是/ftpfile文件夹也行),而不是用ftp://172.20.10.10/这个前缀。
我觉得这可能是我的nginx的配置问题,想请问一下老师我该怎么配置nginx的配置文件呢?
不胜感激!

正在回答 回答被采纳积分+3

2回答

Geely 2019-01-14 15:58:25

https://img1.sycdn.imooc.com//szimg/5c3c40f60001a2f208190284.jpg



可以看看这个步骤的服务端日志,是否有异常呢?

核心在于,文件是否上传上去了,看起来你的域名是OK的。

所以接下来检查文件是否在ftp服务器指定的目录下。


或者可以先把vsftpd的匿名访问等开通,把这块先解决,继续学下边的。

0 回复 有任何疑惑可以回复我~
about_blank 2019-01-08 17:13:38

同学 你的问题描述简直是问答区典范 哈哈

不知道我理解的对不对

你是一台windows的电脑,搭建了虚拟机环境,ftp 和tomcat 都部署在虚拟机上

你上传文件成功应该是 http->tomcat->ftp  说明这条路径是通的

你通过172.20.10.10 这个ip 浏览器访问 ftp 是可以的 说明 windows -> ftp 是没问题的

直接访问nginx 是可以访问的 说明 windos -nginx 是可以的

现在 windows->nginx->ftp 出了问题  我怀疑是 nginx->ftp 有问题

继续就是配置文件的  

nginx 应该也是配置在虚拟机中的, 我看图片中有一段指向C盘的路径不知道是什么文件

你可以再检查下 配置文件

以上都是我的猜测哈

顺便 已经帮你呼叫老师啦 

0 回复 有任何疑惑可以回复我~
  • 提问者 慕数据4154996 #1
    我的ftp服务器是在虚拟机上 但是tomcat是在windows本机的
    回复 有任何疑惑可以回复我~ 2019-01-08 17:20:28
  • 提问者 慕数据4154996 #2
    nginx的配置也是在本机windows系统的
    回复 有任何疑惑可以回复我~ 2019-01-08 17:21:40
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信