通过域名访问部署在服务器上的javaweb项目
因为对域名访问什么也不了解,遇到问题就有种不知道从哪里下手的茫然,也就更不知道错在哪里,前前后后一共折腾了一天多,最后问了阿里客服才成功弄出来,因此记录一下。
关于服务器的购买、配置,及域名的备案解析可以参考这里。另外要在服务器的安全组配置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 "%r" %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可以访问了,难道需要一段等待时间?..

通过域名访问部署在服务器上的javaweb项目的更多相关文章
- 服务器小白的我,是如何将 node+mongodb 项目部署在服务器上并进行性能优化的
前言 本文讲解的是:做为前端开发人员,对服务器的了解还是小白的我,是如何一步步将 node+mongodb 项目部署在阿里云 centos 7.3 的服务器上,并进行性能优化,达到页面 1 秒内看到 ...
- AWS中国区使用https访问部署在S3上的网站
问题描述 最近一个项目需要通过https的方式访问部署在S3上的网站,通过搜索引擎找到一篇文章,可以在AWS Global实现整个过程.但是目前AWS中国区有限制,CloudFront不能使用AWS ...
- Springboot 项目部署到服务器上
项目部署到服务器上,有两种方式,一种 jar 包,一种 war 包 jar包 部署时,后续的域名配置,SSL证书等在nginx中配置 war包 部署时,后续的域名配置可以在tomcat中配置就好,修改 ...
- 如何将Java Web项目部署到服务器上
转自:(此处更详细)http://blog.csdn.net/gulu_gulu_jp/article/details/50994003 一.前言 前面我们已经尝过了在云服务器上部署代码的甜头了,现在 ...
- Linux上部署web服务器并发布web项目-转
Linux上部署web服务器并发布web项目 近在学习如何在linux上搭建web服务器来发布web项目,由于本人是linux新手,所以中间入了不少坑,搞了好久才搞出点成果.以下是具体的详细步骤以 ...
- 将网站部署到服务器上出现_STORAGE_WRITE_ERROR_问题
用的thinkphp3.2的框架,在本地运行没有问题,部署到服务器上(基于centos的LAMP环境)即报错,报错信息如下(完全看不懂...):求大神帮帮忙~~~~(>_<)~~~~ :( ...
- 项目部署到服务器上之后request.getRemoteAddr()为什么获取的都是本地地址
获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了.如 ...
- vue-webpack 做出来的项目部署到服务器上,点开是空白页(我这里把项目发布到git上)
总结1: 从网上下的很多demo,用npm run dev 就可以启动项目,比如:vue-cli,为什么?因为vue-cli自动帮我们安装了express服务器. 总结2: npm run dev 是 ...
- sqlite数据库部署到服务器上的问题
试了一天...本地测试是好的(WIN10 64位+VS2015),部署到服务器上(WIN2008 32位+IIS6) 总是不行..按网上说了什么不要BUNDLE的,加入X86X64目录再放那个SQLi ...
随机推荐
- SpringBoot日记——Web开发篇
准备开始实战啦!~~~~ 我们先来看,SpringBoot的web是如何做web开发的呢?通常的步骤如下: 1.创建springboot应用,指定模块: 2.配置部分参数配置: 3.编写业务代码: 为 ...
- appium移动自动化测试---api键盘操作
模拟键盘输入也是非常重要的操作.这一小节来介绍那些关于键盘的操作. 1.sendKeys()方法 方法: sendKeys() 用法: driver.findElements(By.name(&quo ...
- gitlab 配置 ssh key
打开本地git bash,使用如下命令生成ssh公钥和私钥对 ssh-keygen -t rsa -C 'xxx@xxx.com' 然后一路回车(-C 参数是你的邮箱地址) 然后打开~/.ssh/id ...
- python OptionParser模块使用
OptionParser是python中用来处理命令行的模块,在我们使用python进行流程化开发中必要的工具 Optparse,它功能强大,而且易于使用,可以方便地生成标准的.符合Unix/Posi ...
- iFIERO - (一) 宇宙大战 SPACE BATTLE — 场景SCENE、SpriteKit精灵、PARTICLE粒子及背景音乐
开始游戏教程前,首先介绍一下SpriteKit是什么?SpriteKit提供了一个图形渲染和动画的基础结构,你可以使用它让任意类型的纹理图片或者精灵动起来.SpriteKit使用渲染循环,利用图形硬件 ...
- Unity3D — — UGUI之RectTransform
Mask.GetComponent<RectTransform>().anchoredPosition(子物体) = hotKey_image.rectTransform.anchored ...
- Unity Shader 学习之旅
Unity Shader 学习之旅 unityshader图形图像 纸上学来终觉浅,绝知此事要躬行 美丽的梦和美丽的诗一样 都是可遇而不可求的——席慕蓉 一.渲染流水线 示例图 Tips:什么是 GP ...
- javascript this(上)
javascript的this指向的是一个函数运行时动态绑定对象. this的4种常见的指向: 作为对象的方法调用 var obj={ name:"姚小白", getName:fu ...
- 【读书笔记】《Computer Organization and Design: The Hardware/Software Interface》(1)
笔记前言: <Computer Organization and Design: The Hardware/Software Interface>,中文译名,<计算机组成与设计:硬件 ...
- VMware vSphere 6.0 安装及管理手册
目录 1. VMWARE_VSPHERE安装 1.1. 底层ESXI 安装步骤 1.2. VCENTER安装步骤 1) 准备vCenter安装环境 2) vCenter安装步骤 2. VMWARE_V ...