我有一个Play应用程序在本地端口上侦听:9000。还有其他应用程序在运行。 我想在以下路径上为此应用程序提供服务:
http://myhost/this-play-app -> localhost:9000
以便其他应用可以嵌套在其他路径上。
我已尝试过基本的proxy_pass但它似乎无法正常工作。
server {
listen 80;
server_name myhost;
# MMC Tool
# ----------------------------------------------------
location /this-play-app {
proxy_pass http://localhost:9000;
}
}
播放应用似乎转发到了根目录。有没有办法欺骗游戏应用程序在/this-play-app
路径内工作?
与/this-play-app/some-controller
而不是/some-controller
一样?
由于
答案 0 :(得分:3)
在文件夹中使用应用程序并不合适 - 您需要至少准备一些专用配置,并在每次更改位置时进行更改。
相反,正如其他建议您应该使用子域,在这种情况下,每个应用程序的行为与根域中的行为完全相同,即使您需要/想要更改该域,您需要的所有内容都将在nginx的配置中进行更改
典型的nginx配置看起来像
upstream your_app {
server 127.0.0.1:9000;
}
server {
listen 80;
server_name your-app.domain.com;
location / {
proxy_pass http://your_app;
}
}
最有可能在某些VPS或共享主机上,您需要通过某种管理员面板添加子域 - 在localhost上只需要将子域添加到hosts
文件。
编辑如果无论如何都不可能使用子域名(可惜)你仍然可以通过配置来解决它,在nginx中使用(正如你所做的那样:
...
location /this-play-app {
proxy_pass http://your_app;
}
...
然后将此行添加到application.conf
(播放2.1+)
application.context = "/this-play-app"
或者在Play 2.4+(info)
的情况下play.http.context = "/this-play-app"