一天的时间才搭完累死了!
我在这里主要记录一下,每个修改的意义.如果只是修改而不知道修改的意义我觉得下次还是不会!
云服务器本地使用Http协议访问Tomcat不用输入端口号
这里我已经在阿里云上购买了服务器及域名,并且域名已经备案.
1.登录阿里云服务器.
2.在服务器中下载或者使用你的电脑远程传递一个Tomcat7给服务器.
3.在Tomcat7--conf--server.xml里修改.找到一个port是8080的
你可以直接复制下面,然后ctrl f 搜索
<Connector port="8080
将port改为80,类似这样
在这里,我们的云服务器上,输入localhost就可以直接访问tomcat了,但是其他电脑还不行!
个人电脑通过域名访问云服务器Tomcat
这里接着,上边已经配置好了云服务器上的Tomcat的端口号问题.
我们登录阿里云准备解析域名,
其他的服务器提供商都有解析域名的功能,功能大同小异.
进入域名控制台,怎么进入域名控制台不用说吧,不行就在阿里云官网上的搜索框搜索
点击解析
添加记录
一般只填框起来的这两个选项就行,第一个框写www,代表我们可以通过www.xxx.xx访问某个网站了
再添加记录一次,写一个@,这样我们就可以xxx.xxx访问某个网站了.
我们做完了这一步后,理论上只要别人一输入你的域名,就会默认的找到你的云服务器的80端口了,而我们在上边已经设置了Tomcat的监听端口为80.所以就会找我们的Tomcat了!
访问域名直接跳到项目页面
想不想,别人一输入你的域名不是跳到tomcat的那个页面而是跳到你的项目的主页?
打开server.xml,修改下图的几处,修改成什么,应该不用我说吧
然后在server.xml,下图的这个位置加上一句话,最好自己敲哈.这句话的意思大概就是设置默认是那个项目,
那个docBase属性里的值要写你自己的项目名称哈,别写我的cuzu_server.如果你从别的博文那里也看到要加这个Context,但是当你加了之后运行Tomcat闪退的话,八成是Context这个标签没有关闭,就类似这样的<Context 属性......>,反正我踩过这个坑!
这里如果我没记错的话,应该已经可以访问了,但是有的就不行,比如说我踩的坑.
是这样的,我配置完这些,一访问就是一个空白页.后来才知道原因,其实我已经配置完成了.但是默认要访问那个页面那里设置错了
这里提一下,我们设置默认访问那个页面在Tomcat中有两处可以设置,至少我就知道两处.
一处是Tomcat--conf--web.xml
一处是项目--WEB-INF--web.xml
这里,如果两处都设置了默认页面,根据就近原则.会使用项目里的那个web.xml
我这里就是第二处项目中的web.xml设置错了.因为我是项目下的main文件夹下的head作为默认页的但是我在web.xml中写成了这样
而但我改成了这样就可以了
当然,也许你不会这么蠢,这里我就说说,万一你踩了呢!
Http访问转Https
为啥要转?
为了保护数据.反正就是当你写一个表单,而在http协议的那个页面下会提示页面不安全,我用火狐浏览器在本地模拟了一下,大概就这样!
当然你不想转也行.
写一下转的过程.我自己从早上鼓捣了大半天呢!
这里我们需要阿里云证书了,有免费的.
写一下怎么拿到证书吧!
搜索SSL,第一个结果,进入控制台
购买证书
购买后,就填信息啥的,这里我有一个了就不演示后边怎么搞了,你要是实在不会就百度一下看看别人的吧!
好!我们搞到证书了!
然后有一个官方视频照着做吧.我在下边讲一下为啥这样那样做
额,好像也没得讲,算了....
Http强转Https
Http转了Https为啥还要强转?
别急,这时候,如果别人直接输入你的域名,还是使用的是Http协议,那么怎么让别人能输入了你的域名就直接使用https协议访问呢?
并且,我们前边提到过,http传输数据不安全,我们比如有一个登录页面,用户万一是个ZZ,就非要用http协议呢?就比如这样用户输入:http://www.xxx.xxx/login.jsp呢?我们为了保护数据,保护用户.当然要让服务器接受到了Http请求直接就转成Https协议啦.也就是禁用Http请求.因此有了下面的配置
先提一下附加的东西
我在自己的jsp页面中加了行代码后,就自动访问https了,但是当你执意要用http协议访问时,还是可以访问.
我是在我最开始的那个head.jsp页面中加的,浏览器访问head.jsp用到的是Http协议,其后的页面为Https协议.
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
---------------------分界线--------------------------------
下面正式开始:经过以下配置,当你执意要用http协议访问时,我们的Tomcat服务器就给强转成Https了
找到Tomcat--conf--server.xml打开
这是建立你看了上一步,如何安装ssl证书,你的8443已经改为443的前提下
找到port为8009的,改成这样,后边是443,这一步和下一步都是为了映射端口
<Connector port="8009" protocol="AJP/1.3" redirectPort="443" />
那个已经修改为80的端口后面改成这样,也是443
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
然后打开Tomcat--conf--web.xml
这一步,为了禁用Http协议
在最后,加上这些,有的博文加的东西不太一样,姑且就信我一次吧,加的位置就在下下图
<security-constraint>
<web-resource-collection>
<web-resource-name>ssl</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
看好了!!
完成了!!不论是谁用http你的Tomcat就直接给转成Https了.
但是你会发现你的项目中,有的路径就出问题了.我遇到过一个问题,使用表单提交,结果提交不出去了.
其实就是路径的问题.
这里我们假设项目名是cuzu,cuzu下的main文件夹里有head.jsp文件.
我们本来在没有设置域名直接访问项目时要这样访问:http://www.xxx.xxx/cuzu/main/head.jsp
设置了域名后就要这样了:http://www.xxx.xxx/main/head.jsp
我放一个自己的网站的路径
而如果你在项目中的路径上还有你的项目名,比如cuzu.那么就肯定错了!
比如这个代码,本来可以现在就要换了!
在jsp页面中要这样了
把这些路径问题修改完后基本就完成了!
别人只可以通过https协议进行访问了!
登录界面也不会显示连接不安全了!
当然这只是我自己的做法,不知道对于你来说会如何.但是,只要坚持百度,总会完成的!