因为对域名访问什么也不了解,遇到问题就有种不知道从哪里下手的茫然,也就更不知道错在哪里,前前后后一共折腾了一天多,最后问了阿里客服才成功弄出来,因此记录一下。

关于服务器的购买、配置,及域名的备案解析可以参考这里。另外要在服务器的安全组配置80端口。
一、端口映射
服务器设备,如果申请域名之后,端口默认指向的为80端口,这里服务是发布在tomcat中,使用的是8080端口,因此需要端口映射,将80端口映射到8080端口。
例: http://127.0.0.1 实际等价于:http://127.0.0.1:80 用的是80端口,因为只有80端口可以省略
又例:http://www.sohu.com/ 实际等价于:www.sohu.com:80

以下是Windows系统中的端口映射方法(Linux系统中可以使用iptables)
端口映射可以使用nginx(需要在服务器安装nginx),也可以使用netsh。

这里用的netsh,netsh是win7以上系统自带的,支持IPv4和IPv6。直接cmd,在命令行配置

//添加端口映射
netsh interface portproxy add v4tov4 listenaddress=121.21.36.190 listenport=81 connectaddress=192.168.99.10 connectport=81
//将服务器IP地址为121.21.36.190的端口81映射到服务器IP地址为192.168.99.10的端口8080.现在访问121.21.36.190:81,实际是跟访问192.168.99.10:8080效果一样 //查看已配置的端口映射清单
netsh interface portproxy show v4tov4 //删除端口映射
netsh interface portproxy delete v4tov4 listenaddress=121.21.36.190 listenport=81

这里遇到的一个问题,端口映射用的ip地址是服务器内网ip,而不是服务器公网ip。配置如图

后来发现好像不用端口映射也可以,直接把Tomcat的端口改成80就好了

<Connector port="" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />

直接把port="8080"改为port="80"就可以了。

二、配置Tomcat

打开tomcat/conf/server.conf文件
1. 修改为域名。这里要改两个地方,如图


2. 配置docBase。在<Host></Host>里面添加<Context>。path="" docBase=项目在服务器上的绝对路径。这里项目名称为SpringDemo,如图

配置好的server.conf如下:

    <Engine name="Catalina" defaultHost="www.***.top">

      <!--For clustering, please take a look at documentation at:
/docs/cluster-howto.html (simple how to)
/docs/config/cluster.html (reference documentation) -->
<!--
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
--> <!-- Use the LockOutRealm to prevent attempts to guess user passwords
via a brute-force attack -->
<Realm className="org.apache.catalina.realm.LockOutRealm">
<!-- This Realm uses the UserDatabase configured in the global JNDI
resources under the key "UserDatabase". Any edits
that are performed against this UserDatabase are immediately
available for use by the Realm. -->
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm> <Host name="www.***.top" appBase="webapps"
unpackWARs="true" autoDeploy="true"> <Context docBase="C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\SpringDemo" path="" reloadable="true"/> <!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
--> <!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t &quot;%r&quot; %s %b" /> </Host>
</Engine>

保存server.conf文件,重启Tomcat,就可以通过域名访问部署在服务器上的网站了。3w可以带,也可以不带。如图

三、http转https

已经通过备案的域名,在域名中点击“SSL证书”,进入证书控制台,对已签发的证书进行管理,填写审核信息,提交后几分钟就审批下来了,然后下载对应服务器的证书,我用的Tomcat。
然后根据提示信息进行安装。这里注意要在server.xml中把8443改成443。另外:阿里云SSL数字证书Tomcat配置部署指导视频:https://help.aliyun.com/video_detail/54217.html?spm=5176.2020520163.cas.144.36be2b7aWIOL8z
另外在安全组规则配置443端口,如果防火墙没关的话,在入栈规则配置443端口。
这里遇到一个问题,我是晚上配置的https,但配好之后一直不能通过https访问,结果等第二天早上再试居然https可以访问了,难道需要一段等待时间?..

参考:
windows下端口映射
Tomcat配置域名

通过域名访问部署在服务器上的javaweb项目的更多相关文章

  1. 服务器小白的我,是如何将 node+mongodb 项目部署在服务器上并进行性能优化的

    前言 本文讲解的是:做为前端开发人员,对服务器的了解还是小白的我,是如何一步步将 node+mongodb 项目部署在阿里云 centos 7.3 的服务器上,并进行性能优化,达到页面 1 秒内看到 ...

  2. AWS中国区使用https访问部署在S3上的网站

    问题描述 最近一个项目需要通过https的方式访问部署在S3上的网站,通过搜索引擎找到一篇文章,可以在AWS Global实现整个过程.但是目前AWS中国区有限制,CloudFront不能使用AWS ...

  3. Springboot 项目部署到服务器上

    项目部署到服务器上,有两种方式,一种 jar 包,一种 war 包 jar包 部署时,后续的域名配置,SSL证书等在nginx中配置 war包 部署时,后续的域名配置可以在tomcat中配置就好,修改 ...

  4. 如何将Java Web项目部署到服务器上

    转自:(此处更详细)http://blog.csdn.net/gulu_gulu_jp/article/details/50994003 一.前言 前面我们已经尝过了在云服务器上部署代码的甜头了,现在 ...

  5. Linux上部署web服务器并发布web项目-转

    Linux上部署web服务器并发布web项目   近在学习如何在linux上搭建web服务器来发布web项目,由于本人是linux新手,所以中间入了不少坑,搞了好久才搞出点成果.以下是具体的详细步骤以 ...

  6. 将网站部署到服务器上出现_STORAGE_WRITE_ERROR_问题

    用的thinkphp3.2的框架,在本地运行没有问题,部署到服务器上(基于centos的LAMP环境)即报错,报错信息如下(完全看不懂...):求大神帮帮忙~~~~(>_<)~~~~ :( ...

  7. 项目部署到服务器上之后request.getRemoteAddr()为什么获取的都是本地地址

    获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了.如 ...

  8. vue-webpack 做出来的项目部署到服务器上,点开是空白页(我这里把项目发布到git上)

    总结1: 从网上下的很多demo,用npm run dev 就可以启动项目,比如:vue-cli,为什么?因为vue-cli自动帮我们安装了express服务器. 总结2: npm run dev 是 ...

  9. sqlite数据库部署到服务器上的问题

    试了一天...本地测试是好的(WIN10 64位+VS2015),部署到服务器上(WIN2008 32位+IIS6) 总是不行..按网上说了什么不要BUNDLE的,加入X86X64目录再放那个SQLi ...

随机推荐

  1. Jmeter(二十一)_完整Demo

    1:创建一个线程组   2:添加一个cookie管理器     3:设置你的信息头管理器:application/json;text/plain;charset=UTF-8   44 4:添加一个用户 ...

  2. 【日常训练】数据中心(CSP 201812-4)

    分析 题目实际上是在要在给定的边上构建出一个树,使得这个树的最长边尽可能小. 这实际上是最小生成树的性质(反证法).问题从而得到解决. 代码 /* * Code name => csp20181 ...

  3. RenderSprite小记

    类型定义: /** @private */ public static const IMAGE:int = 0x01; /** @private */ public static const ALPH ...

  4. 关于Unity中OnGUI()的简单使用

    有时候想要输出一些数据到屏幕上方便查看,新建一个UI对象又挺麻烦,用OnGUI()在屏幕上直接绘制UI比较方便. GUI.Label(, , , ), “aaa", style); 这条语句 ...

  5. 经典的性能优化最佳实践 web性能权威指南 读书笔记

    web性能权威指南 page 203 经典的性能优化最佳实践 无论什么网络,也不管所用网络协议是什么版本,所有应用都应该致力于消除或减 少不必要的网络延迟,将需要传输的数据压缩至最少.这两条标准是经典 ...

  6. vue 使用ref获取DOM元素和组件引用

    在vue中可以通过ref获取dom元素,并操作它,还可以获取组件里面的数据和方法. HTML部分: <div id="app"> <input type=&quo ...

  7. MYSQL数据库与Emoji表情的故事

    问题背景 手机上众多输入法和键盘支持输入 emoji 表情,给早期设计的程序造成了越来越多的干扰. 移动端购物的流行,2018 年 "双十一"全网移动端交易达到 93.6% 微信年 ...

  8. jdk8 Optional使用详解

    思考: 调用一个方法得到了返回值却不能直接将返回值作为参数去调用别的方法. 原来解决方案: 我们首先要判断这个返回值是否为null,只有在非空的前提下才能将其作为其他方法的参数.这正是一些类似Guav ...

  9. Scrum Meeting 11 -2014.11.17

    今天和其他两个小组讨论了关于整合问题,在数据库连接等具体方面上还需要继续商讨. 我们小组内部讨论了,这周还是需要在处理整合的同时做项目整体的测试与改进的. Member Today’s task Ne ...

  10. mysql 修改语句及耗时

    1.含有某串字母的字段替换: update imagetable set imageID = replace(imageID, 'ZH0211001', 'ZH4111001') 只要imageID含 ...