![nginx 应用程序未在域名上运行,而是使用域和端口号运行](https://linux22.com/image/1597665/nginx%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%9C%AA%E5%9C%A8%E5%9F%9F%E5%90%8D%E4%B8%8A%E8%BF%90%E8%A1%8C%EF%BC%8C%E8%80%8C%E6%98%AF%E4%BD%BF%E7%94%A8%E5%9F%9F%E5%92%8C%E7%AB%AF%E5%8F%A3%E5%8F%B7%E8%BF%90%E8%A1%8C.png)
我有两个独立的应用程序在我的私人虚拟盒(Linux centos)上运行。一个应用程序是在 Apache 上运行的 php,另一个应用程序是在 gunicorn 和 nginx 上运行的 flask 应用程序。在我的主域(例如 phpapp.com)上,php 应用程序正在运行。我想在另一个域(例如 flaskapp.com)上运行我的 flask 应用程序。我的 flaskapp.com 是 phpapp.com 的子域
我的 php 应用程序在端口 80 上运行,而 flask 在端口 3200 上运行(nginx,我更改了默认值)。但是当我访问 flaskapp.com 时,它不会显示我的 nginx 应用程序,但如果我输入 flaskapp.com:3200,它会显示该应用程序。我不想使用端口 3200。
我在某处读到过,我需要禁用 Apache 然后运行它,但是有没有其他选择,因为我需要运行该应用程序。我是否遗漏了任何细节?
答案1
你不能直接运行两个不同的网络服务器在同一个 IP 和端口上,但你可以运行两个同一网络服务器中的不同应用程序。
这意味着,只要您在 nginx 中有一个 webapp,在 Apache 中有一个 webapp,那么您就无法在没有端口说明符的情况下直接使用这两个 webapp。
如果您可以接受代理,则可以在 Apache(在端口 80 上)到 nginx(在端口 3200 上)或反之亦然。