如何在独立模式下适当设置 passenger_base_uri
How to appropriately set passenger_base_uri in standalone mode
我目前正在尝试确定当 运行 乘客处于独立模式时如何适当地设置 passenger_base_uri。我尝试覆盖 nginx.conf.erb 以包含 passenger_base_uri,我还尝试按照指定的方式设置位置块
https://www.phusionpassenger.com/library/deploy/nginx/deploy/ruby/#deploying-an-app-to-a-sub-uri
这两种方法都产生了随机提供 404 的奇怪结果。
想知道是否有一种直接的方法可以为单个应用程序配置它(看起来可能有一个环境变量选项在某个时候允许这样做?)。
我不是要在单个乘客服务器上部署多个应用程序,只是要更改单个应用程序的上下文而不必更改路线。
passenger-status 的版本:
nginx/1.12.2 Phusion_Passenger/5.2.3
更新:
我尝试了最新版本的 passenger (6.0.1),但仍然看到随机 404。我还尝试提高 passenger 的日志记录级别,但似乎存在一个问题,即某些 passenger 进程在传递请求之前未正确设置 "SCRIPT_NAME"。我似乎无法在本地重现此错误,但可以在部署的实例中可靠地重现它。
同时服务于 404 和 200 的相同 pid:
# passenger-status && curl -I -k https://127.0.0.1/test/meta/availability
Version : 6.0.1
Date : 2019-01-23 00:31:59 +0000
Instance: 36X3YTqe (nginx/1.15.8 Phusion_Passenger/6.0.1)
----------- General information -----------
Max pool size : 10
App groups : 1
Processes : 10
Requests in top-level queue : 0
----------- Application groups -----------
/opt/app (production):
App root: /opt/app
Requests in queue: 0
* PID: 129 Sessions: 0 Processed: 59 Uptime: 12m 55s
CPU: 0% Memory : 68M Last used: 1s ago
* PID: 152 Sessions: 0 Processed: 1 Uptime: 12m 54s
CPU: 0% Memory : 45M Last used: 12m 54s ago
* PID: 176 Sessions: 0 Processed: 0 Uptime: 12m 54s
CPU: 0% Memory : 41M Last used: 12m 54s ago
* PID: 202 Sessions: 0 Processed: 0 Uptime: 12m 53s
CPU: 0% Memory : 41M Last used: 12m 53s ago
....
HTTP/1.1 200 OK
Date: Wed, 23 Jan 2019 00:32:00 GMT
X-Powered-By: Phusion Passenger 6.0.1
Server: nginx/1.15.8 + Phusion Passenger 6.0.1
# passenger-status && curl -I -k https://127.0.0.1/test/meta/availability
Version : 6.0.1
Date : 2019-01-23 00:32:01 +0000
Instance: 36X3YTqe (nginx/1.15.8 Phusion_Passenger/6.0.1)
----------- General information -----------
Max pool size : 10
App groups : 1
Processes : 10
Requests in top-level queue : 0
----------- Application groups -----------
/opt/app (production):
App root: /opt/app
Requests in queue: 0
* PID: 129 Sessions: 0 Processed: 60 Uptime: 12m 57s
CPU: 0% Memory : 68M Last used: 1s ago
* PID: 152 Sessions: 0 Processed: 1 Uptime: 12m 56s
CPU: 0% Memory : 45M Last used: 12m 56s ago
* PID: 176 Sessions: 0 Processed: 0 Uptime: 12m 56s
CPU: 0% Memory : 41M Last used: 12m 56s ago
* PID: 202 Sessions: 0 Processed: 0 Uptime: 12m 55s
CPU: 0% Memory : 41M Last used: 12m 55s ago
....
HTTP/1.1 404 Not Found
Date: Wed, 23 Jan 2019 00:32:01 GMT
X-Powered-By: Phusion Passenger 6.0.1
Server: nginx/1.15.8 + Phusion Passenger 6.0.1
收到了一些关于类似声音的反馈 github issue。看起来是较新版本的 passenger(大于 5.1,当前可用的最高版本是 6.0.1)的问题。应该可以只设置 passenger_base_uri,但错误会导致随机 404s。
我目前正在尝试确定当 运行 乘客处于独立模式时如何适当地设置 passenger_base_uri。我尝试覆盖 nginx.conf.erb 以包含 passenger_base_uri,我还尝试按照指定的方式设置位置块 https://www.phusionpassenger.com/library/deploy/nginx/deploy/ruby/#deploying-an-app-to-a-sub-uri 这两种方法都产生了随机提供 404 的奇怪结果。
想知道是否有一种直接的方法可以为单个应用程序配置它(看起来可能有一个环境变量选项在某个时候允许这样做?)。
我不是要在单个乘客服务器上部署多个应用程序,只是要更改单个应用程序的上下文而不必更改路线。
passenger-status 的版本: nginx/1.12.2 Phusion_Passenger/5.2.3
更新: 我尝试了最新版本的 passenger (6.0.1),但仍然看到随机 404。我还尝试提高 passenger 的日志记录级别,但似乎存在一个问题,即某些 passenger 进程在传递请求之前未正确设置 "SCRIPT_NAME"。我似乎无法在本地重现此错误,但可以在部署的实例中可靠地重现它。
同时服务于 404 和 200 的相同 pid:
# passenger-status && curl -I -k https://127.0.0.1/test/meta/availability
Version : 6.0.1
Date : 2019-01-23 00:31:59 +0000
Instance: 36X3YTqe (nginx/1.15.8 Phusion_Passenger/6.0.1)
----------- General information -----------
Max pool size : 10
App groups : 1
Processes : 10
Requests in top-level queue : 0
----------- Application groups -----------
/opt/app (production):
App root: /opt/app
Requests in queue: 0
* PID: 129 Sessions: 0 Processed: 59 Uptime: 12m 55s
CPU: 0% Memory : 68M Last used: 1s ago
* PID: 152 Sessions: 0 Processed: 1 Uptime: 12m 54s
CPU: 0% Memory : 45M Last used: 12m 54s ago
* PID: 176 Sessions: 0 Processed: 0 Uptime: 12m 54s
CPU: 0% Memory : 41M Last used: 12m 54s ago
* PID: 202 Sessions: 0 Processed: 0 Uptime: 12m 53s
CPU: 0% Memory : 41M Last used: 12m 53s ago
....
HTTP/1.1 200 OK
Date: Wed, 23 Jan 2019 00:32:00 GMT
X-Powered-By: Phusion Passenger 6.0.1
Server: nginx/1.15.8 + Phusion Passenger 6.0.1
# passenger-status && curl -I -k https://127.0.0.1/test/meta/availability
Version : 6.0.1
Date : 2019-01-23 00:32:01 +0000
Instance: 36X3YTqe (nginx/1.15.8 Phusion_Passenger/6.0.1)
----------- General information -----------
Max pool size : 10
App groups : 1
Processes : 10
Requests in top-level queue : 0
----------- Application groups -----------
/opt/app (production):
App root: /opt/app
Requests in queue: 0
* PID: 129 Sessions: 0 Processed: 60 Uptime: 12m 57s
CPU: 0% Memory : 68M Last used: 1s ago
* PID: 152 Sessions: 0 Processed: 1 Uptime: 12m 56s
CPU: 0% Memory : 45M Last used: 12m 56s ago
* PID: 176 Sessions: 0 Processed: 0 Uptime: 12m 56s
CPU: 0% Memory : 41M Last used: 12m 56s ago
* PID: 202 Sessions: 0 Processed: 0 Uptime: 12m 55s
CPU: 0% Memory : 41M Last used: 12m 55s ago
....
HTTP/1.1 404 Not Found
Date: Wed, 23 Jan 2019 00:32:01 GMT
X-Powered-By: Phusion Passenger 6.0.1
Server: nginx/1.15.8 + Phusion Passenger 6.0.1
收到了一些关于类似声音的反馈 github issue。看起来是较新版本的 passenger(大于 5.1,当前可用的最高版本是 6.0.1)的问题。应该可以只设置 passenger_base_uri,但错误会导致随机 404s。