同一台服务器上2个应用程序,不同的端口。第一个应用看不到第二个

时间:2019-12-04 09:46:07

标签: python node.js apache ubuntu flask

我在同一VPS(ubuntu),同一域上有2个应用程序。首先是运行在端口80上的Node.js应用 第二个是Python(Flask)应用程序,在端口:3000下的apache下运行 python应用程序具有带有一个端点/ test的简单API。

我试图直接在浏览器中或从其他服务器使用Postman连接到端点,并且它可以工作。但是,当尝试从同一服务器上的Node应用程序连接时,我得到404。CORS被禁用。

有什么问题吗?

例如: 我的Flask应用程序的端点正在http://myvps.com:3000/test上运行 尝试在计算机或其他服务器上获取数据时 fetch('http://myvps.com:3000/test').then(...)有效。另外,当我在浏览器中访问myvps.com:3000/test时,它也可以正常工作。

但是,当在我的Node应用程序上执行相同的操作fetch('http://myvps.com:3000/test').then(...)时(在保存服务器上,但端口:80- http://myvps.com),则获取返回404-未找到。任何其他外部API均可使用。

虚拟主机配置:

<VirtualHost [server_ip]:3000>
    ServerName ....
    ErrorLog /home/www/python/logs/error.log
    CustomLog /home/www/python/logs/access.log combined

    WSGIDaemonProcess pythonapp user=www-data group=www-data threads=5 python-path=/home/www/python/pythonapp:/home/www/python/pythonapp/env/lib/python3.6/site-packages
    WSGIProcessGroup pythonapp
    WSGIScriptAlias / /home/www/python/pythonapp/pythonapp.wsgi application-group=pythonapp process-group=pythonapp

    <Directory /home/www/python/>
        Order Allow,Deny
        Allow from all
        Require all granted
    </Directory>

    Header set Access-Control-Allow-Origin "*"
    Header set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"
    Header set Access-Control-Max-Age "1000"
    Header set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token"
</VirtualHost>

Node.js应用程序正在Express上运行。

1 个答案:

答案 0 :(得分:0)

我整天都在奋斗,在这里张贴1小时后才找到原因... 问题是虚拟主机配置。我将<VirtualHost [server_ip]:3000>更改为<VirtualHost *:3000>,它开始正常工作。 感谢您的答复!