ajax对linux服务器的请求有时会给我答案,有时会给我返回错误500

时间:2018-04-17 20:41:28

标签: python flask centos gunicorn

我在centos机器上有一个带有gunicorn和烧瓶的python应用程序。我通过以下方式从另一台计算机访问该应用程序:

http://host:port/nameOfFunction?path=https://site/directory1/directory2/directory3/file.pdf

路径是正确的,因为它有效。当我多次进入相同的路径时,有时它会起作用,而其他人则不会。

我正在使用gunicorn(使用以下命令):

gunicorn -b 0.0.0.0:8080 start:app

开始我的申请。当答案返回时,显示gunicorn的屏幕会打印一些代码,我会看到一些信息。 当它返回错误500时,开始的代码根本不打印。

我不知道这是什么原因。

代码的开头是:

@app.route("/call", methods=['POST', 'GET'])
def call():
   print '\n============================BEGINS======================\n'

   path =request.args.get('path')
   newPath = path.rsplit('/',1)[1]
   directoriesRoot(root)
   directoriesRoot(pdfs)

   parameters = ["curl", path.replace(' ','%20'), '--output',pdfs+newPath]

   p = subprocess.Popen(parameters, stdout=subprocess.PIPE)
   output, err = p.communicate()

  if err:
    return 'ERROR'

   person= functionSecundaryWithNoImportance([newPath])
   return jsonify(person) 

有人有一些线索或已经通过了类似的问题?

1 个答案:

答案 0 :(得分:0)

在user3788685的帮助下,我发现我的python应用程序在端口8080上(可能是apache的默认端口之一是8080),所以它有冲突。有时它指向python,其他指向apache。所以我将我的python应用程序的端口更改为1234:

$ java -version

java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)

$ mvn -v

Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: /apps/svr/apache-maven-3.3.9
Java version: 1.8.0_162, vendor: Oracle Corporation
Java home: /apps/svr/jdk1.8.0_162/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "2.6.32-642.6.2.el6.x86_64", arch: "amd64", family: "unix"

现在可以作为魅力了!