我在 Ubuntu 16.04 上运行着 apache 服务器,除了 80 端口之外其他端口都可以正常工作,我已转发了 80 端口,并尝试使用以下方式访问我的服务器
https://mysite.ddns.net/index.html
并且页面无法加载。
如果我将端口改为 8085 并转发,然后尝试使用 URL,
`https://mysite.ddns.net:8085/index.html`
然后它就可以工作了,只有端口 80 有问题。
这是配置文件
端口配置文件
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf
Listen 8075
Listen 80
Listen 443
<IfModule ssl_module>
Listen 80
</IfModule>
<IfModule mod_gnutls.c>
Listen 80
</IfModule>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
默认 SSL 配置文件
<IfModule mod_ssl.c>
<VirtualHost _default_:80>
ServerAdmin [email protected]
DocumentRoot /var/www
ServerName mysite.ddns.net
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
<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
</VirtualHost>
</IfModule>
我已经使用该命令在 iptable 中允许该端口。
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
仍然不起作用。可能是什么原因?
答案1
您正在尝试连接到https://mysite.ddns.net。https 使用端口 443。如果您已在端口 80 上配置 https,则必须使用https://mysite.ddns.net:80。
我建议使用带有端口 443 的 https。我将在端口 80 上为 http 配置第二个 vhost,它会将所有流量重定向到 https。