Linux-Web应用环境部署
2018-08-21 本文已影响0人
醒醒Coco
Linux运行环境
一、安装软件
JDK运行环境
数据库MySql/Oracle
缓存数据库Redis
服务器软件Tomcat/WebLogic/WebSphere
之前已安装,详请见上篇
二、Linux的主机名
查看主机名 hostname
修改主机名(临时) hostname duanxx
通过配置文件修改(永久) vim etc/sysconfig/network
[root@duanxx ~]# vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=duanxx
主机名解析
测试: ping duanxx
[root@coco ~]# ping duanxx
ping: unknown host duanxx
因为 127.0.0.1 和 主机名没有关联
修改配置文件 vim /etc/hosts
在最末行增加 127.0.0.1 新主机名
[root@coco ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1 duanxx
Web应用中,路径的配置
web应用中很多地方要配置一些路径/主机信息,例如:c3p0连接数据库,要配置数据库的地址;使用redis缓存,要正确配置Redis的地址;发送激活邮件时,邮件里的激活地址要正确配置。
-
数据库与的地址配置是否正确
检查
c3p0-config.xml
中,数据库的地址、用户名、密码配置是否正确 -
检查Redis地址配置是否正确
检查
jedis.properties
中,Redis
的地址配置是否正确 -
其他地址的配置
-
代码中发送邮件激活的地址
http://localhost:8080/travel/user?action=active&code= 动态获取服务器Tomcat的IP地址和端口: (不断部署到那台服务器,都可以动态获取) String serverName = request.getServerName(); int serverPort = request.getServerPort(); ServletContext servletContext = request.getServletContext(); String url = "http://" + serverName + ":" + serverPort + "/" + servletContext + "/user?action=active&code=" + user.getCode();
//涉及的API request.getServerName():获取当前服务器的主机名/ip地址 request.getServerPort():获取当前服务器的端口 request.getContextPath():获取当前web应用的context path
-
三、上传部署Web应用
把web应用打包成wer包
使用Maven的package命令,把应用程序打包成war包。步骤:
1.打开cmd命令窗口,切换到Maven项目travel文件夹里
2.执行Maven命令:mvn package 把travel项目打包成war包
上传war包Linux
1.使用xftp连接上Linux服务器
2.把war包上传到tomcat/webapps目录下
/usr/local/apache-tomcat-8.5.27/webapps
四、启动服务器软件
启动并初始化数据库
使用SQLyog连接Linux里的MySql数据库,并执行数据库脚本,初始化MySql数据库
启动Redis缓存
使用xshell连接Linux,启动Redis
切换到redis目录:cd /usr/local/redis/bin
启动redis服务: ./redis-server redis.conf
启动Tomcat软件
使用xshell连接Linux,启动Tomcat
切换到tomcat目录:cd /usr/local/apache-tomcat-8.5.27/bin
启动Tomcat: ./startup.sh
使用nginx反向代理
使用 xshell 连接 Linux,配置并启动nginx
切换到 nginx 目录:cd /usr/local/nginx/conf
使用 vim 打开并修改 nginx.conf,配置服务器池
upstream demoServers{
server 127.0.0.1:8080;
}
server {
listen 80;:
server_name localhost;
location / {
#root html;
index index.html index.htm;
proxy_pass http://demoServers;
}
启动nginx:
cd /usr/local/nginx/sbin
./nginx
五、访问并测试功能
访问Linux上的项目:
没有使用nginx代理,直接使用Tomcat的ip和端口来访问travel项目
输入网址:http://Linux的ip:8080/项目名
使用nginx代理了服务器软件,就需要使用Nginx的代理地址ip和端口来访问travel项目。
输入地址:http://Linux的ip:80/项目名 (Nginx默认使用80端口)
六、出现的问题
[root@duanxx sbin]# ./nginx
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
地址已被使用
查看端口:
[root@duanxx sbin]# netstat -anpl | grep ":80" --color
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 21606/nginx
tcp 0 0 ::ffff:127.0.0.1:8005 :::* LISTEN 5637/java
tcp 0 0 :::8009 :::* LISTEN 5637/java
tcp 0 0 :::8080 :::* LISTEN 5637/java
kill掉21606