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

关于服务器的购买、配置,及域名的备案解析可以参考这里。另外要在服务器的安全组配置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. 关于AutoMapper和WCF的一些认识

    现在互联网时代呈尚快速开发,快速迭代.伴随着必然产生一些好用的第三方工具,今天有幸看到了Automapper这种类似ORM的框架,但是跟ORM还不太一样, ORM是实体和数据库表之间的映射,而此框架主 ...

  2. Json对象与Json字符串的转化、JSON字符串与Java对象的转换(转)

    一.Json对象与Json字符串的转化 1.jQuery插件支持的转换方式: $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符 ...

  3. 电商打折套路分析 —— Python数据分析练习

    电商打折套路分析 ——2016天猫双十一美妆数据分析 数据简介 此次分析的数据来自于城市数据团对2016年双11天猫数据的采集和整理,原始数据为.xlsx格式 包括update_time/id/tit ...

  4. 阿里云服务器ECS上ubuntu安装nginx后默认站点页面打开错误,显示无法访问此网站

    问题:在新买的阿里云服务器ECS上安装nginx后打开默认页面失败,如下图所示. 系统环境:Ubuntu 16.04.4 LTS64版本. 步骤回顾: root用户下运行命令 apt-get inst ...

  5. Jenkins管理插件(备份插件)

    Jenkins管理插件 为了让所有的插件在 Jenkins 内可用,所有插件的列表可以访问链接 − https://wiki.jenkins-ci.org/display/JENKINS/Plugin ...

  6. win10系统安装docker注意事项

    首先要确保win10系统支持 hyper-v 技术. 然后按照官网的流程下载,安装,基本上不会出什么问题.安装好之后使用,需要进行以下几个操作 access denied问题的解决 按win+R,输入 ...

  7. Oracle扩展包(pipe,alert,job,scheduler)

    --定义包中函数的纯度级别 create or replace package purityTest is type dept_typ is table of dept%rowtype index b ...

  8. linux一切皆文件之Unix domain socket描述符(二)

    一.知识准备 1.在linux中,一切皆为文件,所有不同种类的类型都被抽象成文件(比如:块设备,socket套接字,pipe队列) 2.操作这些不同的类型就像操作文件一样,比如增删改查等 3.主要用于 ...

  9. 高可用OpenStack(Queen版)集群-7.Neutron控制/网络节点集群

    参考文档: Install-guide:https://docs.openstack.org/install-guide/ OpenStack High Availability Guide:http ...

  10. sqli-labs学习笔记 DAY4

    DAY 4 sqli-labs lesson 23 与lesson 1一样,只不过屏蔽了#和–注释符. 报错型注入: 爆库:id=99' UNION SELECT 1,extractvalue(1,c ...