Dokku部署RoR应用后访问服务器IP出现Nginx默认页求助
解决Dokku部署RoR应用后显示Nginx默认页的问题
问题描述
在Dokku服务器(版本0.35.11)上部署RoR应用后,使用服务器IP访问时显示Nginx默认页面:

应用的Nginx配置文件:
server { listen [::]:80; listen 80; access_log /var/log/nginx/aramisweb-access.log; error_log /var/log/nginx/aramisweb-error.log; underscores_in_headers off; client_body_timeout 60s; client_header_timeout 60s; keepalive_timeout 75s; lingering_timeout 5s; send_timeout 60s; location / { gzip on; gzip_min_length 1100; gzip_buffers 4 32k; gzip_types text/css text/javascript text/xml text/plain text/x-component application/javascript application/x-javascript application/wasm application/json application/xml application/rss+xml font/truetype application/x-font-ttf font/opentype application/vnd.ms-fontobject image/svg+xml; gzip_vary on; gzip_comp_level 6; proxy_pass http://aramisweb-5000; proxy_http_version 1.1; proxy_connect_timeout 60s; proxy_read_timeout 60s; proxy_send_timeout 60s; proxy_buffer_size 4k; proxy_buffering on; proxy_buffers 8 4k; proxy_busy_buffers_size 8k; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $http_connection; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-Port $server_port; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Request-Start $msec; } client_max_body_size 1m; error_page 400 401 402 403 405 406 407 408 409 410 411 412 413 414 415 416 417 418 420 422 423 424 426 428 429 431 444 449 450 451 /400-error.html; location /400-error.html { root /var/lib/dokku/data/nginx-vhosts/dokku-errors; internal; } error_page 404 /404-error.html; location /404-error.html { root /var/lib/dokku/data/nginx-vhosts/dokku-errors; internal; } error_page 500 501 502 503 504 505 506 507 508 509 510 511 /500-error.html; location /500-error.html { root /var/lib/dokku/data/nginx-vhosts/dokku-errors; internal; } include /home/dokku/aramisweb/nginx.conf.d/*.conf; } upstream aramisweb-5000 { server 172.17.0.5:5000; }
Dokku端口绑定配置:
DOKKU_PROXY_PORT: 80 DOKKU_PROXY_PORT_MAP: http:80:5000 https:443:5000 DOKKU_PROXY_SSL_PORT: 443
排查与解决步骤
调整Nginx虚拟主机优先级
Nginx默认站点配置(通常位于/etc/nginx/sites-available/default)可能优先匹配IP访问请求。执行以下操作:- 禁用默认站点:
sudo dokku nginx:disable-default - 重启Nginx:
sudo service nginx reload
- 禁用默认站点:
为应用配置添加server_name
当前应用的Nginx配置缺少server_name指令,导致IP访问时Nginx不会优先匹配该配置。修改应用的Nginx模板,在server块开头添加:server_name _;然后重新生成配置并重启Nginx:
dokku nginx:build-config aramisweb sudo service nginx reload_代表匹配任何主机名,包括IP地址。验证应用容器状态
确认RoR应用容器正常运行且端口可达:- 查看容器状态:
dokku ps:status aramisweb - 检查应用日志:
dokku logs aramisweb - 从服务器内部测试容器端口:
curl http://172.17.0.5:5000,如果无法访问,需排查RoR应用启动问题。
- 查看容器状态:
重新生成Dokku代理配置
强制重新配置应用代理规则:dokku proxy:build-config aramisweb sudo service nginx reload检查Nginx配置语法
确保配置无语法错误:sudo nginx -t若有错误,根据提示修复后重启Nginx:
sudo service nginx restart
内容的提问来源于stack exchange,提问作者Denis Morin
相关产品推荐
相关产品推荐

