如何正确配置 nginx 以在 thin 上与我的 Sinatra 应用程序 运行 一起工作?
How do I configure nginx correctly to work with my Sinatra app running on thin?
我有一个位于 /var/www/example
中的 Sinatra 应用程序 (app.rb
)。我的设置是 nginx、thin 和 sinatra。
我同时拥有 nginx 和 thin up 运行 但是当我导航到我的站点时,我从 nginx 收到了 404。我假设服务器块配置是错误的。我试过将 root 指向 /var/www/example/
而不是 public
但这没有区别。我认为该请求没有达到 sinatra 应用程序的程度。
我做错了什么?
服务器块:
server {
listen 80;
listen [::]:80;
root /var/www/example/public;
index index.html index.htm index.nginx-debian.html;
server_name example.com www.example.com;
location / {
try_files $uri $uri/ =404;
}
}
config.ru 在 /var/www/example
目录中:
require File.expand_path('../app.rb', __FILE__)
run Sinatra::Application
config.yml 在 /var/www/example
目录中:
---
environment: production
chdir: /var/www/example
address: 127.0.0.1
user: root
group: root
port: 4567
pid: /var/www/example/pids/thin.pid
rackup: /var/www/example/config.ru
log: /var/www/example/logs/thin.log
max_conns: 1024
timeout: 30
max_persistent_conns: 512
daemonize: true
您必须告诉 nginx 将请求代理到您的 Sinatra 应用程序。完成此操作所需的最低限度是在 location
块中指定一个 proxy_pass
指令,如下所示:
location / {
proxy_pass http://localhost:4567;
}
Nginx Reverse Proxy docs 提供了有关您可能想要包括的其他代理设置的更多信息。
我有一个位于 /var/www/example
中的 Sinatra 应用程序 (app.rb
)。我的设置是 nginx、thin 和 sinatra。
我同时拥有 nginx 和 thin up 运行 但是当我导航到我的站点时,我从 nginx 收到了 404。我假设服务器块配置是错误的。我试过将 root 指向 /var/www/example/
而不是 public
但这没有区别。我认为该请求没有达到 sinatra 应用程序的程度。
我做错了什么?
服务器块:
server {
listen 80;
listen [::]:80;
root /var/www/example/public;
index index.html index.htm index.nginx-debian.html;
server_name example.com www.example.com;
location / {
try_files $uri $uri/ =404;
}
}
config.ru 在 /var/www/example
目录中:
require File.expand_path('../app.rb', __FILE__)
run Sinatra::Application
config.yml 在 /var/www/example
目录中:
---
environment: production
chdir: /var/www/example
address: 127.0.0.1
user: root
group: root
port: 4567
pid: /var/www/example/pids/thin.pid
rackup: /var/www/example/config.ru
log: /var/www/example/logs/thin.log
max_conns: 1024
timeout: 30
max_persistent_conns: 512
daemonize: true
您必须告诉 nginx 将请求代理到您的 Sinatra 应用程序。完成此操作所需的最低限度是在 location
块中指定一个 proxy_pass
指令,如下所示:
location / {
proxy_pass http://localhost:4567;
}
Nginx Reverse Proxy docs 提供了有关您可能想要包括的其他代理设置的更多信息。