概述
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就成功了。期间发生的访问错误都与操作无关。延时很严重。
以上是这次自己部署腾讯云遇到的一些坑,耗费了不少时间,希望能给你们带来帮助,网上查阅了不少资料,总结这篇文章,如有错误望指出立马修正
最后
以上就是虚拟唇膏为你收集整理的java--Linux服务器环境搭建,以及Nginx反向代理最后来了几个我这次遇到的大坑(来了上硬菜了)的全部内容,希望文章能够帮你解决java--Linux服务器环境搭建,以及Nginx反向代理最后来了几个我这次遇到的大坑(来了上硬菜了)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复