腾讯云轻量应用服务器 CentOS7.6 +Tomcat/apache 搭建个人web项目,并允许外网通过80或8080端口访问【超详细】
目录
- 1. 腾讯云购买学生轻量应用服务器
- 2. 为服务器用户设置密码允许远程登录
- 3. 本地下载Xshell和Xftp远程管理更方便
- 4. 域名认证和域名解析
- 5. 服务器安装JDK和Tomcat
- 6. 腾讯云防火墙为8080端口添加规则
- 7. 开启服务器防火墙并开启80和8080端口
- 8. 将80端口映射到8080端口
- 方法一
- 方法二
- 9. Tomcat搭建个人web项目
- 10. 解决页面中文乱码
- 11. 题外话——apache
冲着老师一句“没有服务器学这门课怎么好意思学呢”,狠心买了一年腾讯云学生轻量应用服务器,加了点小费顺便捞了一个一年的域名,其实还挺香。但是,在通过服务器搭建个人网站的过程中走了很多弯路,在此记录血汗史,或许也能给路过的你一个参考。
内容有点多,咱尽量用简洁的话语表述。
1. 腾讯云购买学生轻量应用服务器
登录腾讯云官网,购买轻量应用服务器,学生认证后会有优惠,跟着提示做就好。这一步,有钱就行。
2. 为服务器用户设置密码允许远程登录
云产品-轻量应用服务器,选择自己刚买的服务器并管理它。
进入服务器管理,概要-应用信息-重置应用,可以选择服务器支持的操作系统,本人使用镜像 CentOS 7.6,先关机再重置。
概要-实例信息-重置密码,可以在此root用户密码,也是先关机再重置。
应用信息-登录,即可进行远程操作服务器,默认会为你创建“lighthouse”用户。
3. 本地下载Xshell和Xftp远程管理更方便
虽然,腾讯云网站已经有远程登录入口,但使用起来总归没那么方便。我们下载Xshell便于远程ssh登录操作服务器,下载Xftp便于本地与远程服务器间的文件传输。
到官网分别下载个人免费版Xshell和Xftp。
Xhell:新建会话–协议选择SSH–主机为云主机的公网IP–端口22–确定–连接–输入用户名密码–连接成功。
Xftp:新建会话–主机名为公网IP–协议SFTP–端口22–使用身份验证代理–方法选password–输入用户名–连接。
参考网址:https://blog.csdn.net/qq_37969433/article/details/79999124
4. 域名认证和域名解析
没有买域名的朋友可直接跳过此步。
域名认证和域名解析步骤腾讯云都会给你对应指引,因此不用担心它是否复杂。
核对域名实名信息:登录域名管理控制台,确认域名已经完成实名认证。【域名注册成功后必须进行域名实名认证(需提供中国大陆的有效证件),否则域名会处于ServerHold(暂停解析)状态,无法正常使用。】
域名管理完成基本信息和域名资料的修改。
域名解析:前往解析控制台添加域名及设置对应的解析记录。【一般已经为你设置好默认的NS类型的记录,且符合注册域名的DNS,无需修改。】
网站/邮箱解析:域名通过实名认证后,前往解析控制台添加域名及设置对应的解析记录。【可自行添加A类型的记录,常用主机记录可以为@或www,记录值填写服务器公网IP。】
域名ICP备案:可以直接使用腾讯云服务器提交备案。【一般域名认证成功48小时后才允许备案。】
5. 服务器安装JDK和Tomcat
安装jdk1.8,如要安装其他版本,可以通过yum -y list java*
查询可安装的版本
yum -y install java-1.8.0-openjdk
检测是否安装成功:
java -version
下图所示安装成功。
Tomcat 服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
@百度百科
rpm命令查看是否安装tomcat:
rpm -q tomcat
安装Tomcat,Xshell中执行如下命令:
yum install tomcat tomcat-webapps tomcat-admin-webapps tomcat-docs-webapp tomcat-javadoc
tomcat-webapps
安装默认Tomcat根页面;
tomcat-admin-webapps
安装Tomcat Web应用程序管理器和Virtual Host Manager;
tomcat-docs-webapp
和tomcat-javadoc
安装Tomcat文档,以便默认Tomcat页面上的所有链接都可以运行。
至此,这增加了ROOT , examples , sample , manager和host-manager 5个Web应用到tomcat/webapps
的目录,通过yum安装的tomcat文件夹在/usr/share/tomcat
;如果你想运行一个Tomcat应用程序,可以将它放在/usr/share/tomcat/webapps
的目录。
然后,将tomcat设置为开机自启:
systemctl enable tomcat
启动tomcat:
systemctl start tomcat
到这里,我们已经提供了一些web项目,试图通过IP地址访问服务器,却发现服务器拒绝了我们的连接请求,该怎么办?
参考博客:
- https://blog.csdn.net/qq_37969433/article/details/79999124
- https://www.cnblogs.com/qianzf/p/6986962.html
6. 腾讯云防火墙为8080端口添加规则
查看/usr/share/tomcat/conf/server.xml
文件,可以发现tomcat支持的HTTP协议默认绑定8080端口。
vim /usr/share/tomcat/conf/server.xml
那么我们就尝试通过8080端口访问服务器,“http://IP地址:8080”,结果还是无法访问网站,不过显示的不是拒绝请求,而是响应时间过长。
后来知道,腾讯云对服务器的入流量有自己的控制规则,其默认没有为8080端口配置规则,只允许80、443、22、3389端口输入流量。
那么,我们可以手动为8080端口添加规则。
现在,我们再次通过8080端口(http://公网IP:8080)访问服务器,就能看到前面tomcat-webapps
命令安装的Tomcat根页面了。
7. 开启服务器防火墙并开启80和8080端口
拥有防火墙,至少拥有一道保护屏障,抵御一部分网络攻击。新买的服务器默认应该是没有开启防火墙的。我们现在把它开启:
systemctl start firewalld
查看防火墙状态:
firewall-cmd --state
得到结果是running
。
开启后,我们再一次通过8080端口访问服务器tomcat的web页面,你会发现又是访问失败。嗯,年轻人不要慌……我们先用下面命令查看当前端口开放连接状态:
netstat -tunlp
结果,你会惊讶地发现,不但连8080端口,就是80端口也没有连接。
在running 状态下,向firewall添加需要开放的端口,--permanent
表示永久添加:
firewall-cmd --permanent --zone=public --add-port=8080/tcp
firewall-cmd --permanent --zone=public --add-port=80/tcp
与之对应关闭的命令为:
firewall-cmd --zone=public --remove-port=8080/tcp --permanent
然后,加载配置,使得修改有效:
firewall-cmd --reload
使用命令查看开启的端口,出现8080/tcp,开启正确:
firewall-cmd --permanent --zone=public --list-ports
或者查询指定端口是否开启连接,显示yes
表示开启:
firewall-cmd --permanent --zone=public --query-port=8080/tcp
再次启动防火墙:
systemctl start firewalld.service
不出意外的话,现在通过8080端口访问远程服务器又可以看到“猫”了,但访问80端口怎么还是拒绝请求……回想一下,上述操作都指向了8080端口(tomcat服务默认端口),并没有为80端口指定服务。
用下面命令查看一下80端口是否被某个进程占用:
lsof -i:80
果然不出所料,80端口并没有被什么进程占用,自然也无法被互联网其他用户访问。
参考博客:
- https://www.cnblogs.com/zeussbook/p/10191051.html
- https://blog.csdn.net/shmily_lsl/article/details/82876645
8. 将80端口映射到8080端口
有没有什么办法,通过80端口也能访问tomcat下的web项目呢?
方法一
修改tamcat服务的端口为80.
vim /usr/share/tomcat/conf/server.xml
找到<Connector port="8080" protocol="HTTP/1.1>"
将8080改为80,再重启tomcat:
systemctl restart tomcat
方法二
如果不想修改tomcat端口,我们可以选择将80端口映射到8080端口。也就是说,当出现访问80端口的请求,希望有一种机制可以将该请求转交到8080端口,实现端口重定向redirect;而访问8080端口依旧请求8080端口的服务。
我们可以利用iptables防火墙的包过滤规则:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
-t nat
: 指出操作的表(不写就表示filter,默认是filter) ;
-A PREROUTING
: A 表示添加,在 PREROUTING 中添加一个规则;
--dport 80
: 如果请求80端口;
--to-port 8080
: 那么就转到8080端口。
如果想要删除映射,可以先查看映射:
iptables -t nat -L -nv --line-numbers
这个命令的作用是,列出nat表中的规则,并且给个num,然后我们就可以利用这个id删除这个规则了。
再利用下面语句删除上条命令列出的指定id规则:
iptables -t nat -D PREROUTING 4
-t nat
: 表示要操作的表,默认是filter;
-D
: 表示执行删除操作;
PREROUTING 4
: 表示nat表中的第4链,后面数字4就是上图中的num.
现在,访问服务器80端口就相当于访问8080端口的内容了。
参考博文:
- https://blog.csdn.net/wangxiaopeng0329/article/details/49179209
- https://blog.csdn.net/shuaicenglou3032/article/details/58133182
9. Tomcat搭建个人web项目
如果想访问到的是自己项目下某个指定页面,该怎么办呢?
假设自己的web项目文件夹名为new
,我们打开server.xml
文件,转到<Host>
标签:
vim /usr/share/tomcat/conf/server.xml
在标签下添加标签的内容:
<Context path="" docBase="new" debug="0" reloadable="true"/>
docBase
指定登录tomcat默认主页所在的文件夹,其默认值是ROOT文件夹,也就是我们看见的猫。现在改成自己的new文件夹。reloadable
设置为true表示只要tomcat中的项目有改动tomcat就会自动重新加载编译,可以带给我们一些方便;但是在项目发布阶段一般设为false,可以提高tomcat的性能。
当然,我们需要把自己的web项目放到webapps目录下,这里用Xftp传输本地文件就非常方便。
重启tomcat:
systemctl restart tomcat
现在,倘若自己的web项目下有index.html
、index.htm
或index.jsp
,访问服务器就会默认展示按顺序先出现的文件作为主页;那如果自己项目没有像上述命名的文件,是否可以设置默认打开自己指定的文件做主页?
当然,打开web.xml
文件:
vim /usr/share/tomcat/conf/web.xml
G
(按shift+g键)直接转到文件末尾,找到<welcome-file-list>
,在其内容最上面添加<welcome-file>
标签,后者内容为自己项目下想默认打开做主页的文件名,假设我的new
下有个文件login.html
,添加如下:
<welcome-file>login.html</welcome-file>
重要一点,再次重启tomcat:
systemctl restart tomcat
现在,访问服务器出现的主页面就是自己的new
文件夹下的hello.html
页面了。
参考博文:
- https://blog.csdn.net/qq_35661171/article/details/79165535
- https://blog.csdn.net/qq_21997183/article/details/88770692
10. 解决页面中文乱码
如果页面有中文,会出现乱码。学某些博主在server.xml
设置编码格式为UTF-8
,但是不顶用……
最后给html页面的<head>
头标签增设了<meta>
标签,设置了字符集为“utf-8”,解决了问题。
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
11. 题外话——apache
上述主要介绍了tomcat服务及防火墙的一些配置。其实,我们也可以采用apache搭建web环境,apache服务默认绑定80端口。前面的操作过程中我们已为80端口添加了服务器的防火墙过滤规则,且腾讯云平台也开放了80端口的入站规则,下面我们只需要安装启动apache服务。
安装apache服务,安装的是httpd包:
yum install -y httpd
开启apache服务:
service httpd start
现在再用lsof
命令和firewall-cmd
查看80端口开启、活跃状态,皆已正常,同时,外网也能通过80端口访问服务器了。(当然,这以没有做前文80端口映射到8080端口为前提。)
把自己项目放到/var/www/html
下,即能看见自己的index内容。倘若要搭建动态网站,可根据自己的需要配置php或jsp,mysql等环境,此文不做展开。
参考博文:
- CentOS 初体验三: Yum 安装、卸载软件
- centos7中使用yum安装tomcat以及它的启动、停止、重启
- 重要:腾讯云服务器CentOS 7.3 Web服务器环境搭建
- 腾讯云服务器tomcat端口无法访问
- linux_CentOS 7.2 64位 腾讯云 80端口未启用解决方法
- 修改tomcat默认的欢迎首页,将tomcat默认的欢迎页面改成自己项目的页面
- Linux下Tomcat使用80端口映射到8080端口
- html设置编码格式
- tomcat中文乱码问题
腾讯云轻量应用服务器 CentOS7.6 +Tomcat/apache 搭建个人web项目,并允许外网通过80或8080端口访问【超详细】相关推荐
- 腾讯云轻量级服务器怎么搭建网站,腾讯云轻量应用服务器新手教程:快速搭建网站...
原标题:腾讯云轻量应用服务器新手教程:快速搭建网站 腾讯云轻量应用服务器(Lighthouse)具备轻运维.开箱即用的特点,适用于小型网站.博客.论坛.电商以及云端开发测试和学习环境等轻量级业务场景, ...
- 腾讯云轻量应用服务器使用 SRS 应用镜像搭建个人直播间、视频转播、本地录制!
SRS 是一个开源的流媒体集群,主要应用在直播和 WebRTC,支持 RTMP.WebRTC.HLS.HTTP-FLV 和 SRT 等常用协议. 轻量应用服务器提供了 SRS 应用镜像,使您无需再关注 ...
- 腾讯云轻量应用服务器使用 Cloudreve 应用镜像搭建个人私有云盘!
Cloudreve 是一款开源的网盘软件,支持服务器本机及腾讯云对象存储 COS 等多种存储方式,提供离线下载.拖拽上传.在线预览等功能,能够帮助您快速搭建个人使用或多人共享的云盘系统.该镜像基于 C ...
- 腾讯云轻量应用服务器使用 WooCommerce 应用镜像搭建电商独立站
WooCommerce 是当前很受欢迎的电商独立站建站工具,具备开源.免费.使用简单且功能强大等特点,您可通过该镜像快速搭建基于 WordPress 的电商独立站.该镜像已预装 WordPress(包 ...
- 阿里云轻量应用服务器/腾讯云轻量应用服务器如何安装宝塔面板?
目录 一.阿里云轻量应用服务器如何安装宝塔面板? 第一种方式:重置为宝塔面板应用镜像 第二种方式:安装CentOS系统,用命令安装宝塔面板 二.腾讯云轻量应用服务器如何安装宝塔面板? 第一种方式:重置 ...
- 腾讯云轻量应用服务器一键搭建Discuz Q
腾讯轻量应用云服务器一键搭建Discuz Q 环境 腾讯云轻量应用服务器 Discuz! Q 控制台 进入腾讯云轻量控制台,应用信息中选择重置应用 微信二维码验证通过后,选择应用镜像 →\righta ...
- 腾讯云轻量应用服务器搭配WordPress程序使用宝塔面板一键式搭建个人博客网站
你想要拥有一个自己的网站吗,不在受第三方网站的约束,自由撰写文章帖子,随时随地发挥你的想象.其实搭建一个个人网站没有那么麻烦,完全小白用户也可以办到,只需要点点鼠标就可以完成,下面就详细介绍使用腾讯云 ...
- 腾讯云轻量应用服务器镜像怎么选?支持更改
腾讯云轻量应用服务器镜像怎么选择?购买后还可以更改镜像系统吗?镜像是可以更换的,所以大家放心选择.轻量应用服务器镜像怎么选择?要根据实际应用情况选择,如果是搭建网站应用,可以选择宝塔面板,Linux和 ...
- 云服务器下行_腾讯云轻量应用服务器简单测评
这台机器的配置是1核心1G内存3M带宽,一直在吃灰,到现在才想起来应该测评一下 腾讯云活动推荐cloud.tencent.com 测评 机器概况 从图中可以看到这台机器CPU采用 AMD EPYC ...
最新文章
- ArcGIS Server的配置
- python【数据结构与算法】Queue,LifoQueue,PriorityQueue
- boost::mp11::mp_count相关用法的测试程序
- java match正则不生效_[Java教程]正则表达式match()函数
- mybatis的二级缓存
- Mybatis3(3)动态 SQL
- python传递变量_在Python中传递变量
- 性能测试之JMeter接口关联【JSON提取器】详解
- 2019一级计算机等级考试试题,2019年全国计算机等级考试一级练习试题及答案(一)...
- 国行ps4服务器维护,不能登录其地区的PSN代表什么
- LeetCode--path sum ii
- 真4k测试样片_如何让自己的抖音视频更高清?测试一天后,偷偷告诉你
- hive sql 行列转换
- 深度学习 视频目标跟踪
- DIY强大的虚拟化环境-升级存储主机
- Värde Partners任命新合伙人并增设副首席投资官
- 企业全面移动化实践指南
- 传奇修改map地图教程_传奇地图事件触发脚本教程
- 怎么从SPSS的分析结果中得出回归方程?
- 软件开发常用工具介绍