我在同一个 VPS (ubuntu)、同一个域上有 2 个应用程序。首先是 Node.js 应用程序,在端口 :80 上运行 第二个是在 apache 下运行的 Python (Flask) 应用程序,端口:3000 python 应用程序具有简单的 API 和一个端点/test。
我正在尝试使用 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(...)
(在保存服务器上但是port :80- http://myvps.com ) 获取返回 404 - Not Found。任何不同的外部 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 小时后找到了原因......
问题是虚拟主机配置。我已经更改了<VirtualHost [server_ip]:3000>
至 <VirtualHost *:3000>
它开始工作了。
谢谢回复!
关于python - 同一台服务器上的 2 个应用程序,不同的端口。第一个应用程序看不到第二个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59173026/