java--Linux服务器环境搭建,以及Nginx反向代理

Linux系统java环境(以及Nginx反向代理)

主要安装jdk和Tomcat环境

1.tomcat环境安装
2.jak环境安装以及环境变量配置

两种方式:

第一种:使用yum方式安装jdk

第二种:直接官网下载压缩包进行安装(以下只讲第一种方式,安装包自行前往官网下载)
下载完解压到自己目录下 命令解压jdk到当前目录:环境变量配合第一种方式进行配置

tar -zxvf jdk-8u60-linux-x64.tar.gz

一、安装jdk和配置环境变量

1.查看yum中管理的可用的JDK软件包列表:

yum search java | grep -i --color JDK

结果如下图所示:
在这里插入图片描述

2.选择合适版本,安装jdk,本人选择的是java-1.8.0-openjdk-devel.x86_64

yum install java-1.8.0-openjdk-devel.x86_64

出现如下显示时输入y,进行安装

在这里插入图片描述

3.配置环境变量。下面直接上命令

vim /etc/profile

i (进入编辑状态)

将下面三行代码放在文件末尾

~~export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.121-0.b13.el7_3.x86_64(注意这行是照着别人写的,结果报错,我使用的下面那一行。具体看安装的版本,请自行替换)~~ 

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64

export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$PATH:$JAVA_HOME/bin

按Esc(退出编辑状态)

:wq(保存并退出)

source /etc/profile (让设置立即生效)
在这里插入图片描述
java -version
在这里插入图片描述
能显示以上信息,就说明安装成功了。



二 、安装tomcat

首先在tomcat官方下载tomcat文件,然后利用ftp工具上传到linux服务器—自行百度下载ftp工具

tar zxvf apache-tomcat-8.5.37.tar.gz(执行命令解压上传的tomcat)

cd / (回到根目录)

1、启动tomcat

执行命令:/home/apache-tomcat8.5.37/bin/startup.sh(这个命令第一次安装是用成功了,后面还是要进入bin目录下,在输入启动命令,末尾有介绍)

在这里插入图片描述

2、开放8080端口

在linux上开启的tomcat使用浏览器访问不了。主要原因在于防火墙的存在,导致的端口无法访问。

CentOS7使用firewall而不是iptables。所以解决这类问题可以通过添加firewall的端口,使其对我们需要用的端口开放。

1.使用命令 firewall-cmd --state查看防火墙状态。
得到结果是running或者not running

2.在running 状态下,向firewall 添加需要开放的端口,如果没开启 systemctl start firewalld 开启即可

命令为 firewall-cmd --permanent --zone=public --add-port=8080/tcp //永久的添加该端口。去掉–permanent则表示临时。

与之对应关闭的命令为firewall-cmd --zone=public --remove-port=8080/tcp --permanent

3.firewall-cmd --reload //加载配置,使得修改有效。

4.使用命令 firewall-cmd --permanent --zone=public --list-ports //查看开启的端口,出现8080/tcp这开启正确

5.再次使用外部浏览器访问,这出现tomcat的欢迎界面。

6.查看netstat -tunlp

补充(CentOS7以下有专门的防火墙操作命令):
开启防火墙的命令
systemctl start firewalld.service
关闭防火墙的命令
systemctl stop firewalld.service
开机自动启动
systemctl enable firewalld.service
关闭开机自动启动
systemctl disable firewalld.service
查看防火墙状态
systemctl status firewalld下列显示表示没有问题。









查看设置是否有效

firewall-cmd --zone=public --query-port=8080/tcp
 在这里插入图片描述

3.上传部署java WEB项目

1.找到Tomcat下 conf/server.xml找到这个文件

使用命令:vi server.xml 修改文件配置

为了方便截图我这边使用软件打开xml文件

    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

在这里插入图片描述

<Context path ="" docBase="自己的项目名.war"  reloadable="true"/>

在这里插入图片描述
上传项目的war文件–(我这边暂时用的是springboot)

在pom.xml里面直接加上相关配置如图

在这里插入图片描述
如何导出war文件?(这边做Maven介绍)点击如下就能自动生成
在这里插入图片描述
会生成一个target文件如图(这个就是上传服务器的文件)
在这里插入图片描述
一般默认情况下生成的都是系统默认的名称,那如何自定义生成war文件名?
还是修改pom.xml文件,如图,添加finlName标签导出时的war文件就是当前的文件名
在这里插入图片描述
首先是上传,但是100多M的war包用PuTTY竟然上传失败!没办法只好整了个xshell







关于Xshell,直接去官方网站下载,需要你填写一个邮箱,然后你的邮箱会收到一个下载地址,点击下载就好啦。安装的时候选择个人学校免费版本的就好了。

然后连接上Xshell,同样是访问 ip,用户名,密码这三个参数然后下面命令:

rz (查看是否安装上传工具rz 指上传到linux服务器 )

yum install -y lrzsz (安装上传工具)

rz -be(或rz 选择你要上传的文件上传即可,我用rz 命令失败,涉及到二进制的问题)

特别说明:上传的文件在你登录的用户名下,我用root登录,因此上传文件在root目录下。害我找半天,不在home目录下哦

然后把war移动到tomcat的webapps文件下,再重新启动tomcat就好了。

所有上传的项目必须放到webapps文件下

这里多扯一句,如果有多个项目怎么办?如图
在这里插入图片描述

Linux下tomcat服务的启动、关闭与错误跟踪,使用PuTTy远程连接到服务器以后,通常通过以下几种方

式启动关闭tomcat服务: 切换到tomcat主目录下的bin目录(cd usr/local/tomcat/bin)
1,启动tomcat服务 方式一:直接启动 ./startup.sh 方式二:作为服务启动 nohup ./startup.sh &
方式三:控制台动态输出方式启动 ./catalina.sh run 动态地显示tomcat后台的控制台输出信息,Ctrl+C后退出并关闭服务
解释:
通过方式一、方式三启动的tomcat有个弊端,当客户端连接断开的时候,tomcat服务也会立即停止,通过方式二可以作为linux服务一直运行
通过方式一、方式二方式启动的tomcat,其日志会写到相应的日志文件中,而不能动态地查看tomcat控制台的输出信息与错误情况,通过方式三可以以控制台模式启动tomcat服务,
直接看到程序运行时后台的控制台输出信息,不必每次都要很麻烦的打开catalina.out日志文件进行查看,这样便于跟踪查阅后台输出信息。tomcat控制台信息包括log4j和System.out.println()等输出的信息。
2,关闭tomcat服务 ./shutdown.sh






如何隐藏端口?

方法一:修改tomcat server.xml文件
在这里插入图片描述
原理是:http请求的默认请求的是80端口,所以用80端口的话可以再域名后面省略端口号

那如果那咱就是想用8080端口又不想让端口出现怎么办?

第二种方式Nginx的反向代理

安装就不做过多介绍了

参考:Nginx安装以及Linux系统命令

安装完Nginx后我们需要修改nginx配置文件,在/opt/nginx/config/nginx.conf文件中:

server {
    listen       80;
    server_name  image.项目名.com;
	# 监听域名中带有group的,交给FastDFS模块处理
    location ~/group([0-9])/ {
        ngx_fastdfs_module;
    }
    location / {
        root   html;
        index  index.html index.htm;
        proxy_pass:http://www.baidu.com:8080/;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

这里需要注意到的是 proxy_pass这个是转发到你的域名下面去,记住proxy_pass这个一定是你要转发的域名确保能访问到,listen会监听到80端口的请求这时候我们就不用在访问的时候带上端口号了

最后来了几个我这次遇到的大坑(来了上硬菜了)

腾讯云服务器tomcat端口无法访问

1.https://console.cloud.tencent.com/cvm/securitygroup 需要去这个地址设置安全组。

当然更改了安全组和防火墙还是不行。于是我查看Tomcat的记录,发现:

/home/apache-tomcat-8.5.37/bin/catalina.sh: line 482: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.121-0.b13.el7_3.x86_64/bin/java: No such file or directory

很明显是环境变量配置的问题。原因是我前面安装图简单实用yum 安装而环境变量又是网上copy的三行代码,而自己根本没有仔细查看是否对不对。

当然这个问题通过查看tomcat的运行状态也可以看出来

ps -ef|grep tomcat
在这里插入图片描述
出现上图,表示是有问题的

在这里插入图片描述
这个是正常的,也就是受java环境吧变量配置的影响。

实际安装的jdk信息和环境变量配置的对不上。于是修改了环境变量中java的版本信息

在这里插入图片描述
第二种情况:

输入命令 netstat -tunlp 可以看到8080端口根本就没开放,如何访问。

那么如何开启,因为Centos7以上用firewalld代替了iptables,也就是说firewalld开通了8080端口应该就行了。

查看开放端口 netstat -tunlp

在这里插入图片描述
1.查看防火墙状态。

firewall-cmd --state #查看防火墙状态。

得到结果是running或者not running

如果没开启

systemctl start firewalld

2.在running 状态下,向firewall 添加需要开放的端口

firewall-cmd --permanent --zone=public --add-port=8080/tcp
#永久的添加该端口。去掉–permanent则表示临时。

与之对应关闭的命令为

firewall-cmd --zone=public --remove-port=8080/tcp --permanent

3.加载配置,使得修改有效。

firewall-cmd --reload

使用命令 查看开启的端口,出现8080/tcp这开启正确

firewall-cmd --permanent --zone=public --list-ports

别忘了关键一步 再次启动防火墙

systemctl start firewalld.service 

再查看端口8080就开放了
在这里插入图片描述
最坑爹的是腾讯云的服务器,在这些和安全组都设置好以后。你得等待一会,然后访问Tomcat就成功了。期间发生的访问错误都与操作无关。延时很严重。

以上是这次自己部署腾讯云遇到的一些坑,耗费了不少时间,希望能给你们带来帮助,网上查阅了不少资料,总结这篇文章,如有错误望指出立马修正

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章