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

关于服务器的购买、配置,及域名的备案解析可以参考这里。另外要在服务器的安全组配置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. MySQL ZIP Archive 5.7.17 安装方法

    1.下载 2.解压缩 3.创建/修改配置文件 在MySQL安装目录下,新建my.ini,内容如下参考 [mysql] # 设置mysql客户端默认字符集 default-character-set=u ...

  2. Discuz x3.2利用阿里云cdn处理https访问亲测教程

    第一步配置cdn和https 1.首先去阿里云.腾讯云.七牛云等申请免费https证书 2.虚拟主机是不能直接支持https的,需要cdn处理后才可以,并且端口是80 3.开启cdn加速处理,(买一个 ...

  3. JS截图(html2canvas)

    JS截图(html2canvas) • 引入js <script type="text/javascript" src="js/html2canvas.js&quo ...

  4. LimeSDR在windows下使用Gqrx来接收FM广播

    本文内容.开发板及配件仅限用于学校或科研院所开展科研实验! 淘宝店铺名称:开源SDR实验室 LimeSDR链接:https://item.taobao.com/item.htm?spm=a230r.1 ...

  5. webpack2.0+ vue2.0

    一 webpack 2.0 及用到的插件安装(默认已经有node环境) 1. package.json文件 (插件安装及插件的功能不详解) { "private": true, & ...

  6. 新手Python第四天(生成器)

    Python 生成器 生成器和生成表达式 a=[i*2 for i in range(10)]#生成表达式 b=(i*2 for i in range(10))#生成器 生成器的特点:优点(不占用内存 ...

  7. BP神经网络算法推导

    目录 前置知识 梯度下降法 激活函数 多元复合函数求偏导的相关知识 正向计算 符号定义 输入层 隐含层 输出层 误差函数 反向传播 输出层与隐含层之间的权值调整 隐含层与输入层之间权值的调整 计算步骤 ...

  8. 简单安装与使用虚拟环境virtualenv

    安装虚拟环境的命令如下: sudo pip install virtualenv sudo pip install virtualenvwrapper 创建虚拟环境的命令如下: mkvirtualen ...

  9. js实现把一个页面层数据传递到另一个页面

    由于之前面试,被问到过此问题,所以今天特意整理了一下.由于自己技术水平有限,若存在错误,欢迎提出批评. 本博客整理了两种方式从一个页面层向另一个页面层传递参数. 一. 通过cookie方式 1. 传递 ...

  10. 校友聊---Sprint计划会议总结

    1.产品需求及索引卡: 校友聊的软件我们计划分三步进行设计实现功能:文字聊天.语音聊天.视频聊天.首先第一步我们要实现文字聊天这个功能. 经过调研讨论之后,确定了产品的几个需求:在局域网内实现通信要依 ...