Nginx/Passenger: Difference between revisions

From Chorke Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
{|class='wikitable'
{|class='wikitable'
|valign='top' colspan='2'|
{|class='wikitable mw-collapsible mw-collapsed'
!scope='col' style='text-align:left'| Source
|-
|valign='top'|
<syntaxhighlight lang='bash'>
cat <<'EXE' | sudo bash
apt-get update;echo
apt-get install -y apt-transport-https ca-certificates gnupg build-essential
apt-get install -y software-properties-common git curl file procps libfuse2
apt-get clean;sleep 5
EXE
curl -fsSL https://oss-binaries.phusionpassenger.com/auto-software-signing-gpg-key-2025.txt \
| sudo tee /etc/apt/keyrings/phusion.asc >/dev/null
cat << APT | sudo tee /etc/apt/sources.list.d/passenger.list >/dev/null
deb [arch=$(dpkg --print-architecture)\
signed-by=/etc/apt/keyrings/phusion.asc]\
https://oss-binaries.phusionpassenger.com/apt/passenger noble main
APT
</syntaxhighlight>
|}
|-
|valign='top' style='width:50%'|
|valign='top' style='width:50%'|
<syntaxhighlight lang='bash'>
<syntaxhighlight lang='bash'>
cat <<'EXE' | sudo bash
cat <<'EXE' | sudo bash
apt-get update;echo
apt-get update;echo
apt-get install -y nginx
apt-get install -y nginx libnginx-mod-http-passenger
nginx -v;echo ;apt-get clean
which passenger;echo
passenger version
apt-get clean
EXE
EXE
</syntaxhighlight>
</syntaxhighlight>
Line 13: Line 39:
|valign='top' colspan='2'|
|valign='top' colspan='2'|
{|class='wikitable mw-collapsible mw-collapsed'
{|class='wikitable mw-collapsible mw-collapsed'
!scope='col' style='text-align:left'|
!scope='col' style='text-align:left'| [https://editor.plantuml.com/uml/PLHDSvim4BthLsp9eScajjjRuqCdjPsswQIfOzpf9PS55gmnI5GIiVdtNSac15i764dllVrwS6iT6jTKfS36QTLK2Hdnpcse8gXBb4g8zn2xjfIgW5mRM1jKjaP3Acq1LGOFsEh62RkLYe-nWWJJRM5qexAvBfd1oxsItW8nTTfuRO9kuOwihkWDQARtIymo7xvRdpuA4RWG_R5aO6RqZjyHd2oquEz5elUyY_vI0Z6P5sPmpW5_aN_ERt8K7itXd4nbZSf1z5X8jOzErSBfENY9rf8gM7Uk3KL7yEkf8EuIvo2wHBxMTIbJT5AhBfCBkg6KydFjLPEqmBWLoj82CoEl7NO1dA7316teOBGuRg91rejPdq7eLxz6NmurXStrzHH-hDTBMD6_Xgo3IneNO_X-juP9hQspLw87dzC1fZ3VKBeDDc5RSH6GovAUrUKyZYVt5HPa9p_ZAo6KTjtCZImsRWhtUS02xIL70gauPfDmcpuygqCCwqV7DmuoQIXrPJjc6vJkDLrfG-H5gx3Yq7EjdFUR3_8cIywvdvSl-PisEpGPcAFCYqI8TRebD_7T2FoUCUGFQvOP5n06LXkTaZrCA3owWljgbUvGN1H_6M0QfTZbN6-l7_57irEMPmwATkm36lUQmwGE1kdcUBUdjE6Gnzu4V8_m-CMicwB7nqyFyDIGQGEolnigZqPJy1vZMTkKJfp8ZWQzyU0L6uyCPUohNmyy-j-F9vcF1XOwK6oj5HlQ1_B65IUkyvJUnfvoDEs19swPm_-p_m00 Diagram]
[https://editor.plantuml.com/uml/PLHDSvim4BthLsp9eScajjjRuqCdjPsswQIfOzpf9PS55gmnI5GIiVdtNSac15i764dllVrwS6iT6jTKfS36QTLK2Hdnpcse8gXBb4g8zn2xjfIgW5mRM1jKjaP3Acq1LGOFsEh62RkLYe-nWWJJRM5qexAvBfd1oxsItW8nTTfuRO9kuOwihkWDQARtIymo7xvRdpuA4RWG_R5aO6RqZjyHd2oquEz5elUyY_vI0Z6P5sPmpW5_aN_ERt8K7itXd4nbZSf1z5X8jOzErSBfENY9rf8gM7Uk3KL7yEkf8EuIvo2wHBxMTIbJT5AhBfCBkg6KydFjLPEqmBWLoj82CoEl7NO1dA7316teOBGuRg91rejPdq7eLxz6NmurXStrzHH-hDTBMD6_Xgo3IneNO_X-juP9hQspLw87dzC1fZ3VKBeDDc5RSH6GovAUrUKyZYVt5HPa9p_ZAo6KTjtCZImsRWhtUS02xIL70gauPfDmcpuygqCCwqV7DmuoQIXrPJjc6vJkDLrfG-H5gx3Yq7EjdFUR3_8cIywvdvSl-PisEpGPcAFCYqI8TRebD_7T2FoUCUGFQvOP5n06LXkTaZrCA3owWljgbUvGN1H_6M0QfTZbN6-l7_57irEMPmwATkm36lUQmwGE1kdcUBUdjE6Gnzu4V8_m-CMicwB7nqyFyDIGQGEolnigZqPJy1vZMTkKJfp8ZWQzyU0L6uyCPUohNmyy-j-F9vcF1XOwK6oj5HlQ1_B65IUkyvJUnfvoDEs19swPm_-p_m00 Diagram]
|-
|-
|valign='top'|
|valign='top'|

Revision as of 23:38, 6 February 2026

Source
cat <<'EXE' | sudo bash
apt-get update;echo
apt-get install -y apt-transport-https ca-certificates gnupg build-essential
apt-get install -y software-properties-common git curl file procps libfuse2
apt-get clean;sleep 5
EXE

curl -fsSL https://oss-binaries.phusionpassenger.com/auto-software-signing-gpg-key-2025.txt \
 | sudo tee /etc/apt/keyrings/phusion.asc >/dev/null

cat << APT | sudo tee /etc/apt/sources.list.d/passenger.list >/dev/null
deb [arch=$(dpkg --print-architecture)\
 signed-by=/etc/apt/keyrings/phusion.asc]\
 https://oss-binaries.phusionpassenger.com/apt/passenger noble main
APT
cat <<'EXE' | sudo bash
apt-get update;echo
apt-get install -y nginx libnginx-mod-http-passenger
which passenger;echo
passenger version
apt-get clean
EXE
Diagram

Passenger » Why

Passenger » Why

Feature Nginx + Passenger Nginx + Puma
Ease of Setup High (Single config file) Medium (Need to manage Puma service)
Process Management Automatic (Spawns/restarts apps) Manual (Requires Systemd or Monit)
Memory Management Excellent (Auto-kills bloated processes) Good (Manual tuning required)
Multi-Language Supports Ruby, Python, Node.js Ruby only

Passenger » How

Passenger » How

How » Install

lxc launch ubuntu:24.04 passenger   || true  && sleep 5
lxc delete   passenger/ubuntu:24.04 || true

lxc snapshot passenger ubuntu:24.04 && sleep 1
lxc restore  passenger ubuntu:24.04 && sleep 5
lxc exec     passenger -- uname -r
lxc restore  passenger ubuntu:24.04 && sleep 5
lxc delete   passenger/passenger:6.1.2 || true

cat <<'INI' | \
lxc exec     passenger -- bash
cat <<'EXE' | sudo bash
apt-get update;echo
apt-get install -y apt-transport-https ca-certificates gnupg build-essential
apt-get install -y software-properties-common git curl file procps libfuse2
apt-get clean;sleep 5
EXE

curl -fsSL https://oss-binaries.phusionpassenger.com/auto-software-signing-gpg-key-2025.txt \
 | sudo tee /etc/apt/keyrings/phusion.asc >/dev/null

cat << APT | sudo tee /etc/apt/sources.list.d/passenger.list >/dev/null
deb [arch=$(dpkg --print-architecture)\
 signed-by=/etc/apt/keyrings/phusion.asc]\
 https://oss-binaries.phusionpassenger.com/apt/passenger noble main
APT

cat <<'EXE' | sudo bash
apt-get update;echo
apt-get install -y nginx libnginx-mod-http-passenger
which passenger;echo
passenger version
apt-get clean
EXE
INI

lxc snapshot passenger passenger:6.1.2 && sleep 1
lxc restore  passenger passenger:6.1.2 && sleep 5
lxc exec     passenger -- passenger version

How » Config

lxc restore  passenger passenger:6.1.2 && sleep 5
lxc exec     passenger -- passenger version
echo
lxc exec     passenger -- cat /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;echo
lxc exec     passenger -- cat /etc/nginx/conf.d/mod-http-passenger.conf
echo
lxc exec     passenger -- cat /usr/share/nginx/modules-available/mod-http-passenger.load;echo
lxc exec     passenger -- cat /etc/nginx/modules-enabled/50-mod-http-passenger.conf
cat <<'INI' | \
lxc exec     passenger -- bash
cat <<'EXE' | sudo bash
if [ ! -f /etc/nginx/modules-enabled/50-mod-http-passenger.conf ]; then 
  ln -s   /usr/share/nginx/modules-available/mod-http-passenger.load \
          /etc/nginx/modules-enabled/50-mod-http-passenger.conf
fi
ls -lah   /etc/nginx/conf.d/mod-http-passenger.conf
EXE
INI
cat <<'INI' | \
lxc exec     passenger -- bash
cat <<'EXE' | sudo bash
systemctl restart nginx;echo
passenger-config validate-install --auto;echo
passenger-memory-stats  --no-apache;echo
passenger-config about ruby-command
EXE

INI

References

References