我有一个在 apache2 上运行的 ruby on rails 应用程序,带有 phusion-passenger。该应用程序在本地受信任网络上完美运行,但我无法通过无线(不受信任)或任何外部网络访问它。我可以在外部网络上 ping 服务器,但访问默认页面或 ssl 页面的 URL 时什么也得不到。我已经与我们的网络服务确认防火墙上的所有内容均已正确配置。
我目前已将其设置为通过 https 转发非安全流量,配置如下:
默认:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
Redirect permanent / https://www.example.com/
</VirtualHost>
默认 SSL:
<IfModule mod_ssl.c>
NameVirtualHost *:443
<VirtualHost *:443>
ServerName www.example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/rails/example/current/public
<Directory /var/rails/example/current/public>
AllowOverride all
Options -MultiViews
RailsEnv production
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined
SSLEngine on
SSLCertificateFile /usr/local/ssl/public/certificate.crt
SSLCertificateKeyFile /usr/local/ssl/private/example.key
SSLCertificateChainFile /usr/local/ssl/crt/intermediate.crt
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
</IfModule>
并且 apache2ctl -S 输出:
/usr/sbin/apache2ctl: 87: ulimit: error setting limit (Operation not permitted)
[Thu Nov 15 10:50:40 2012] [warn] NameVirtualHost *:443 has no VirtualHosts
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:443 is a NameVirtualHost
default server betrnet.mc.vanderbilt.edu (/etc/apache2/sites-enabled/default-ssl:3)
port 443 namevhost betrnet.mc.vanderbilt.edu (/etc/apache2/sites-enabled/default-ssl:3)
*:80 is a NameVirtualHost
default server betrnet.mc.vanderbilt.edu (/etc/apache2/sites-enabled/000-default:1)
port 80 namevhost betrnet.mc.vanderbilt.edu (/etc/apache2/sites-enabled/000-default:1)
Syntax OK
任何帮助将不胜感激!
答案1
Ping 不是网站测试工具。您能 ping 服务器的事实几乎与您无法访问服务器上的网站无关。如果 ping 是您唯一的工具,那么解决这个问题将需要很长时间。
太好了...您可以 ping 服务器,这样您就确认了网络连接...但是当您在内部连接到网站时您就已经知道这一点了。
您尝试如何从外部连接到站点?通过 FQDN 还是通过 IP 地址?如果通过 FQDN,则尝试通过 IP 地址以排除 DNS 问题。
您是否确定防火墙配置正确,可以将到公共 IP 地址的外部连接转发到服务器的内部 IP 地址以进行 HTTP 和 HTTPS?
答案2
事实证明该服务器位于防火墙的仅限内部访问组中。