目录

  • 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. 域名认证和域名解析

没有买域名的朋友可直接跳过此步。

域名认证和域名解析步骤腾讯云都会给你对应指引,因此不用担心它是否复杂。

  1. 核对域名实名信息:登录域名管理控制台,确认域名已经完成实名认证。【域名注册成功后必须进行域名实名认证(需提供中国大陆的有效证件),否则域名会处于ServerHold(暂停解析)状态,无法正常使用。】

    域名管理完成基本信息和域名资料的修改。

  2. 域名解析:前往解析控制台添加域名及设置对应的解析记录。【一般已经为你设置好默认的NS类型的记录,且符合注册域名的DNS,无需修改。】

  3. 网站/邮箱解析:域名通过实名认证后,前往解析控制台添加域名及设置对应的解析记录。【可自行添加A类型的记录,常用主机记录可以为@或www,记录值填写服务器公网IP。】

  4. 域名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-webapptomcat-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.htmlindex.htmindex.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端口访问【超详细】相关推荐

  1. 腾讯云轻量级服务器怎么搭建网站,腾讯云轻量应用服务器新手教程:快速搭建网站...

    原标题:腾讯云轻量应用服务器新手教程:快速搭建网站 腾讯云轻量应用服务器(Lighthouse)具备轻运维.开箱即用的特点,适用于小型网站.博客.论坛.电商以及云端开发测试和学习环境等轻量级业务场景, ...

  2. 腾讯云轻量应用服务器使用 SRS 应用镜像搭建个人直播间、视频转播、本地录制!

    SRS 是一个开源的流媒体集群,主要应用在直播和 WebRTC,支持 RTMP.WebRTC.HLS.HTTP-FLV 和 SRT 等常用协议. 轻量应用服务器提供了 SRS 应用镜像,使您无需再关注 ...

  3. 腾讯云轻量应用服务器使用 Cloudreve 应用镜像搭建个人私有云盘!

    Cloudreve 是一款开源的网盘软件,支持服务器本机及腾讯云对象存储 COS 等多种存储方式,提供离线下载.拖拽上传.在线预览等功能,能够帮助您快速搭建个人使用或多人共享的云盘系统.该镜像基于 C ...

  4. 腾讯云轻量应用服务器使用 WooCommerce 应用镜像搭建电商独立站

    WooCommerce 是当前很受欢迎的电商独立站建站工具,具备开源.免费.使用简单且功能强大等特点,您可通过该镜像快速搭建基于 WordPress 的电商独立站.该镜像已预装 WordPress(包 ...

  5. 阿里云轻量应用服务器/腾讯云轻量应用服务器如何安装宝塔面板?

    目录 一.阿里云轻量应用服务器如何安装宝塔面板? 第一种方式:重置为宝塔面板应用镜像 第二种方式:安装CentOS系统,用命令安装宝塔面板 二.腾讯云轻量应用服务器如何安装宝塔面板? 第一种方式:重置 ...

  6. 腾讯云轻量应用服务器一键搭建Discuz Q

    腾讯轻量应用云服务器一键搭建Discuz Q 环境 腾讯云轻量应用服务器 Discuz! Q 控制台 进入腾讯云轻量控制台,应用信息中选择重置应用 微信二维码验证通过后,选择应用镜像 →\righta ...

  7. 腾讯云轻量应用服务器搭配WordPress程序使用宝塔面板一键式搭建个人博客网站

    你想要拥有一个自己的网站吗,不在受第三方网站的约束,自由撰写文章帖子,随时随地发挥你的想象.其实搭建一个个人网站没有那么麻烦,完全小白用户也可以办到,只需要点点鼠标就可以完成,下面就详细介绍使用腾讯云 ...

  8. 腾讯云轻量应用服务器镜像怎么选?支持更改

    腾讯云轻量应用服务器镜像怎么选择?购买后还可以更改镜像系统吗?镜像是可以更换的,所以大家放心选择.轻量应用服务器镜像怎么选择?要根据实际应用情况选择,如果是搭建网站应用,可以选择宝塔面板,Linux和 ...

  9. 云服务器下行_腾讯云轻量应用服务器简单测评

    这台机器的配置是1核心1G内存3M带宽,一直在吃灰,到现在才想起来应该测评一下 腾讯云活动推荐​cloud.tencent.com 测评 机器概况 从图中可以看到这台机器CPU采用 AMD EPYC ...

最新文章

  1. ArcGIS Server的配置
  2. python【数据结构与算法】Queue,LifoQueue,PriorityQueue
  3. boost::mp11::mp_count相关用法的测试程序
  4. java match正则不生效_[Java教程]正则表达式match()函数
  5. mybatis的二级缓存
  6. Mybatis3(3)动态 SQL
  7. python传递变量_在Python中传递变量
  8. 性能测试之JMeter接口关联【JSON提取器】详解
  9. 2019一级计算机等级考试试题,2019年全国计算机等级考试一级练习试题及答案(一)...
  10. 国行ps4服务器维护,不能登录其地区的PSN代表什么
  11. LeetCode--path sum ii
  12. 真4k测试样片_如何让自己的抖音视频更高清?测试一天后,偷偷告诉你
  13. hive sql 行列转换
  14. 深度学习 视频目标跟踪
  15. DIY强大的虚拟化环境-升级存储主机
  16. Värde Partners任命新合伙人并增设副首席投资官
  17. 企业全面移动化实践指南
  18. 传奇修改map地图教程_传奇地图事件触发脚本教程
  19. 怎么从SPSS的分析结果中得出回归方程?
  20. 软件开发常用工具介绍

热门文章

  1. 智能手机CPU大揭秘
  2. 院校毕业论文答辩PPT模板
  3. (转载整理)SAP ERP常用T-CODE
  4. 三国杀3v3模式最好的组合
  5. CPU联盟潘榆文:百度侵权的大山虽然高不可攀,但我愿做愚公
  6. 基于android的移动应用开发PPT,基于Android的移动应用开发课件.ppt
  7. Django之爱鲜蜂项目开发 day05(三)
  8. tcp communication btw c# and C++
  9. MySQL数据库层优化基本概念
  10. 智慧校园有多便捷?涂鸦公寓赋能打造,校内生态一键链接