本文将教你如何部署自己个人简历网站到服务器。
本文要部署的网站成品:
流程:
- 选购服务器
- 搭建环境
- 部署项目
一、选购服务器
我们每天都在访问不同的网站,比如百度,那我们在浏览器输入 www.baidu.com
背后发生了什么,百度又是如何提供服务的呢。
首先我们要明白内网IP和公网IP的区别。
1、公网IP和内网IP
如图,假如我在某学校访问百度,正在使用着校园网,首先校园网的路由器会把我们的内网IP转换成外网的IP,如何进行寻址、网关转发,最后找到百度的服务器公网IP,然后我的个人PC就和百度的服务器建立了链接,这样就可以互相通信了。
整个网络的服务建立是很复杂的,涉及譬如IP封装、ARP寻址、三次握手、防火墙等等。这些就留给你们慢慢研究了。
我们只需要明白,公网IP具有世界范围的唯一性,而域名 baidu.com 的 公网IP 解析 为 39.156.69.79
,所以 我们访问百度的时候,就是向IP为 39.156.69.79
的服务器建立连接。
所以,只需要拥有一个公网IP,你就可以建立自己的服务器;虽然个人也可以申请公网IP,但是这个比较复杂而且没有商用服务器方便,一般我们都是选择商用的服务器。比如腾讯云、百度云、阿里云、华为云等等。
2、选择云服务商
以腾讯云为例,登录 腾讯云 ,https://cloud.tencent.com
,如果你是学生的话,可以使用学生身份购买 学生云主机。
学生云主机优惠的链接是这个:https://cloud.tencent.com/act/campus
这里我选择购买 轻量应用服务器 lighthouse,刚好碰上有优惠,地址这个: https://curl.qcloud.com/Jot5xuYU
我选择的是 1核 2G 5M ,系统镜像选择 Centos7.6 ,购买完毕,然后进入控制台。
3、熟悉控制台
- 首先我们需要重置一下密码,然后重启。
- 然后下面可以看到腾讯云给你分配的IP了。
比如我的公网IP是119.29.62.179
- 防火墙
这里默认设置了端口开放的规则,如果你的服务器需要使用其他端口,比如说后续我们需要开放MySQL的3306端口,也需要到这里设置,否则远程是无法访问你的数据库的。
自此,你就可以和这台服务器玩耍了。
4、登录服务器
登录服务器需要使用终端工具,这里我使用 MobaXterm 。
如果你不熟悉MobaXterm,可以参考我这个:MobaXterm,一款免费又炫酷的终端工具
输入你的ip和账户名,如何再输入密码,就可以了。
二、配置环境
在配置服务器环境的时候,需要下载很多东西,比如你要安装jdk,你可以使用yum命令;也可以使用ftp工具把预先下载的.gz 压缩包上传到服务器,然后解压安装。
这里因为只需要部署一个静态HTML网站,只需要jdk和tomcat就够了。
1、配置jdk
有两种安装方法
1、yum安装
查看可用版本:
yum -y list java*
[root@VM-8-8-centos software]# yum -y list java*
Loaded plugins: fastestmirror, langpacks
Determining fastest mirrors
Available Packages
java-1.6.0-openjdk.x86_64 1:1.6.0.41-1.13.13.1.el7_3 os
java-1.6.0-openjdk-demo.x86_64 1:1.6.0.41-1.13.13.1.el7_3 os
java-1.6.0-openjdk-devel.x86_64 1:1.6.0.41-1.13.13.1.el7_3 os
java-1.6.0-openjdk-javadoc.x86_64 1:1.6.0.41-1.13.13.1.el7_3 os
java-1.6.0-openjdk-src.x86_64 1:1.6.0.41-1.13.13.1.el7_3 os
java-1.7.0-openjdk.x86_64 1:1.7.0.261-2.6.22.2.el7_8 updates
java-1.7.0-openjdk-accessibility.x86_64 1:1.7.0.261-2.6.22.2.el7_8 updates
java-1.7.0-openjdk-demo.x86_64 1:1.7.0.261-2.6.22.2.el7_8 updates
java-1.7.0-openjdk-devel.x86_64 1:1.7.0.261-2.6.22.2.el7_8 updates
java-1.7.0-openjdk-headless.x86_64 1:1.7.0.261-2.6.22.2.el7_8 updates
java-1.7.0-openjdk-javadoc.noarch 1:1.7.0.261-2.6.22.2.el7_8 updates
选择你要的版本:
yum install -y java-1.6.0-openjdk.x86_64
然后就可以了。
默认给安装到 usr/lib/jvm/
, 而且帮你把环境变量配好了,你输入 java -version
就可以了,这种方法也同样适合安装其他环境。
2、解压包安装
2. 1、上传并解压
使用ftp工具把jdk上传到服务器,然后解压。
我选择jdk8,注意是.gz的,这是Linux识别的压缩包后缀。
下载地址是:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
解压到 我自己新建的指定目录 /var/www/web/jdk/
tar -zxvf jdk-8u261-linux-x64.tar.gz -C /var/www/web/jdk/
然后记住你的安装路径。用pwd
命令查看当前目录 我本地是 /var/www/web/jdk/jdk1.8.0_261
[root@VM-8-8-centos ~]# cd /var/www/web/jdk/jdk1.8.0_261/
[root@VM-8-8-centos jdk1.8.0_261]# ll
total 25668
drwxr-xr-x 2 10143 10143 4096 Jun 18 14:55 bin
-r--r--r-- 1 10143 10143 3244 Jun 18 14:55 COPYRIGHT
drwxr-xr-x 3 10143 10143 4096 Jun 18 14:55 include
-rw-r--r-- 1 10143 10143 5219010 Jun 18 12:03 javafx-src.zip
-rw-r--r-- 1 10143 10143 195 Jun 18 14:55 jmc.txt
drwxr-xr-x 6 10143 10143 4096 Jun 18 14:55 jre
drwxr-xr-x 4 10143 10143 4096 Jun 18 14:55 legal
drwxr-xr-x 4 10143 10143 4096 Jun 18 14:55 lib
-r--r--r-- 1 10143 10143 44 Jun 18 14:55 LICENSE
drwxr-xr-x 4 10143 10143 4096 Jun 18 14:55 man
-r--r--r-- 1 10143 10143 159 Jun 18 14:55 README.html
-rw-r--r-- 1 10143 10143 424 Jun 18 14:55 release
-rw-r--r-- 1 10143 10143 21005583 Jun 18 14:55 src.zip
-rw-r--r-- 1 10143 10143 190 Jun 18 12:03 THIRDPARTYLICENSEREADME-JAVAFX.txt
-r--r--r-- 1 10143 10143 190 Jun 18 14:55 THIRDPARTYLICENSEREADME.txt
[root@VM-8-8-centos jdk1.8.0_261]# pwd
/var/www/web/jdk/jdk1.8.0_261
2. 2、配置环境变量:
vim /etc/profile
按一下按Insert
或者I
键,表示 进入编辑模式。
末尾追加添加三行,JAVA_HOME是你的jdk安装路径(可以右键粘贴) :
export JAVA_HOME=/var/www/web/jdk/jdk1.8.0_261
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
修改完成再按一下 Esc 键
,输入 :wq
,表示保存并关闭 。
3、生效环境变量
source /etc/profile
4、完成
输入 java -version
,出现版本号,安装成功。
[root@VM-8-8-centos ~]# java -version
java version "1.8.0_261"
Java(TM) SE Runtime Environment (build 1.8.0_261-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)
2、配置tomcat
tomcat下载地址:https://tomcat.apache.org/download-80.cgi
我这里用的是tomcat8.0,把tomcat上传到服务器,然后解压:
tar -zxvf apache-tomcat-8.0.53.tar.gz -C /var/www/web
我这里不配置环境变量,直接到tomcat的bin目录启动:
[root@VM-8-8-centos bin]# cd /var/www/web/apache-tomcat-8.0.53/bin
[root@VM-8-8-centos bin]# ./startup.sh
Using CATALINA_BASE: /var/www/web/apache-tomcat-8.0.53
Using CATALINA_HOME: /var/www/web/apache-tomcat-8.0.53
Using CATALINA_TMPDIR: /var/www/web/apache-tomcat-8.0.53/temp
Using JRE_HOME: /var/www/web/jdk/jdk1.8.0_261
Using CLASSPATH: /var/www/web/apache-tomcat-8.0.53/bin/bootstrap.jar:/var/www/web/apache-tomcat-8.0.53/bin/tomcat-juli.jar
Tomcat started.
因为我在腾讯云的后台的防火墙已经事先开放了8080端口。
然后通过 ip:8080 就能访问了。
如果你不是腾讯云的服务器,不能访问,那么就需要配置防火墙,开放8080端口;或者修改tomcat的端口,这种一般都是自己的本地虚拟机才会出现,市面上的云服务器都可以在控制台配置。
如果你是centos7,可以这样做:
[root@VM-8-8-centos bin]# firewall -cmd --list-ports
-bash: firewall: command not found
未安置防火墙,需要安装
yum install firewalld systemd -y
启动防火墙
systemctl start firewalld.service
开放80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
重启防火墙:
systemctl reload firewalld
查看防火墙状态(关闭后显示not running,开启后显示running)
systemctl status firewalld
三、部署项目
1、准备项目
通过ftp把项目上传到服务器。上传到 /var/www/web/HaCresume
目录结构如下:
找到tomcat目录下的conf/server.xml文件,在末尾 标签之间添加上:
<Context path="" docBase="/var/www/web/HaCresume/" debug="0" reloadable="true"/>
表示Tomcat的根目录就是这个了,不再是webapps下面了。
找到tomcat目录下的conf/web.xml文件,修改首页:
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
表示我的 首页 就是 /var/www/web/HaCresume/index.html
了。
然后重启Tomcat,浏览器输入 http://81.71.16.134:8080/
即可访问了:
注意:如果你开启了Nginx,需要把Nginx的80端口放开监听,或者关闭Nginx
/usr/local/nginx/sbin//nginx -s stop
虽然现在访问没有问题,但是还有几个问题:
1、 网站提示连接是不安全的。
2、 能不能访问的时候不需要带端口?
3、能不能通过域名访问,就像 www.baidu.com 这样。
如果你想深入的了解,那么就继续往下看。
2、域名注册、解析
一个域名只有一个ip地址,而一个ip地址可以对应多个域名。
腾讯云、阿里云都可以购买域名,腾讯云域名注册URL:https://dnspod.cloud.tencent.com/
购买完成、然后实名认证(否则不能使用80端口),域名就可以绑定你的IP了,专业术语叫 解析,我这里购买的域名是baimuxym.cn
解析:
以腾讯云为例,登入后台,点击解析
点击 添加记录 ,你的域名还可以生成子域名,比如说 www.baimuxym.cn
是我的根域名,www.a.baimuxym.cn
、www.b.baimuxym.cn
也是可以的,我这里添加了一个 rain,www.rain.baimuxym.cn
就是我的域名了,如图所示:
自此 www.baimuxym.cn
www.rain.baimuxym.cn
已经申请完成了,都是指向 81.71.16.134
怎么知道有没有解析成功呢?我们ping一下就知道了:
C:\Users\Administrator>ping www.baimuxym.cn
正在 Ping www.baimuxym.cn [81.71.16.134] 具有 32 字节的数据:
来自 81.71.16.134 的回复: 字节=32 时间=8ms TTL=54
来自 81.71.16.134 的回复: 字节=32 时间=8ms TTL=54
来自 81.71.16.134 的回复: 字节=32 时间=8ms TTL=54
来自 81.71.16.134 的回复: 字节=32 时间=13ms TTL=54
81.71.16.134 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 8ms,最长 = 13ms,平均 = 9ms
IP正是我的服务器IP,说明解析成功。
然后我在浏览器输入 http://www.baimuxym.cn:8080/
,发现一样可以访问我的服务器了,和http://81.71.16.134:8080/
是一样的效果。
3、修改Tomcat端口
http://www.baimuxym.cn:8080
访问还需要带端口,实在是麻烦。
找到tomcat目录下的conf/server.xml文件,修改端口:
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
重启Tomcat,输入 http://www.baimuxym.cn
,就能访问了。因为http://
默认就是 80 端口,而我的服务器80端口恰好就是Tomcat的端口,那么自然就能访问我的项目了。
4、申请SSL证书
我们访问自己的服务器,发现只能使用http://
访问,还提示连接不安全,而使用 https://
是无法访问的。
即https://www.baimuxym.cn
可以访问,而https://www.baimuxym.cn
无法访问。
我们知道http://
是不安全的,端口为80;而https://
是安全的,端口为443。
要想使用https://
,我们就需要有SSL证书,证书可以通过两个渠道获得:
- 1、自己生成
- 2、商用证书
在使用前,先把端口改了。
我们知道,8443是Tomcat https://的默认端口,就像8080是Tomcat的默认 http:// 端口一样。
先把Tomcat的8843端口改了:
80跳转到443:
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
8009跳转到443:
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="443" />
1、第一种:自己生成 证书
虽然安全性不是那么高,但胜在成本低。但是证书是会被浏览器拦截,提示不安全的。
如果要自己生成,可以参考这篇文章:
https://blog.csdn.net/yudianxiaoxiao/article/details/109033619
2、第二种:购买 公开可信认证机构 证书
商用的SSL实在是太贵了,比如说赛门铁克、亚信,个人一般都难以承受,let’s encrypt 是一个免费的SSL组织,申请后有3个月的期限,到期可以续杯。
2.1、申请证书
腾讯云 可以免费申请 1年的免费证书,我这里使用腾讯云为例子:
申请完毕,点击下载 , 解压看到这个压缩包有几种服务器的不同类型证书。我们是Tomcat的服务器,就把Tomcat的jks证书上传到服务器。
2.2、tomcat配置https
替换server.xml的jks证书路径和密码即可:
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreFile="/root/cert/www.baimuxym.cn.jks" keystorePass="i24vj6841f1"/>
2.3、设置http自动跳转到https
把http的请求都转发到https
找到tomcat目录下的conf/web.xml文件,末尾 加入:
<!-- ====================自动跳转——start ===================== -->
<security-constraint>
<web-resource-collection >
<web-resource-name >SSL</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<!-- ====================自动跳转——end ===================== -->
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
5、完成
然后重启Tomcat。访问 https://baimuxym.cn/
现在就不会提示证书不安全了。完美!
到这里,一个项目就已经部署完成了,但只是一个静态网页。部署JavaWeb项目,也是一样的操作,只不过要结合Redis、MySQL等等。
体验这个网站,点击这个:https://baimuxym.cn