我创建了一个运行在GlassFish上的J2EE应用程序,启用了HTTPS。当用户输入http://www.mydomain.com:8080/app时,它会被重定向到https://www.mydomain.com:8181/app/login。
然而,当我在一些网站上看到,它实际上可以重定向到https://www.mydomain.com/app/login(没有https端口8181)。这是否意味着服务器在端口80上同时运行HTTP和HTTPS ?
如何在GlassFish 3.1上配置这个?
非root用户不应该使用1024以下的端口。最好将端口转发从80转到8080,443 (https默认)转到8181。
以root身份执行:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8181
需要永久保存:
iptables-save -c > /etc/iptables.rules
iptables-restore < /etc/iptables.rules
vi/etc/network/if-pre-up.d/iptablesload
#!/bin/sh
iptables-restore < /etc/iptables.rules
exit 0
你也可以在admin web gui下配置它:Configuration -> Server Config -> Network Config -> Network Listeners
只是给出alexblum的答案的更多细节,当你登录到Glassfish管理面板,去Configurations -> server-config -> Network Listeners in Network Config
。
- 然后点击New添加一个新的监听器。在新的监听器页面上,只需选择80作为您的端口,并将0.0.0.0作为您的IP。
- 选择tcp作为您的传输,并使用http-thread-pool作为您的线程池
- 保存和重启你的Glassfish实例
HTTP默认端口为80。当您访问URL: http://www.example.com/时,您正在连接到www.example.com:80
。
HTTPS默认端口为443。当您访问URL: https://www.example.com/时,您正在连接到www.example.com:443
。
(见端口号列表)
(参见GlassFish使用其他端口的配置)