linux项目部署、Nginx详解

Linux环境部署

远程连接工具

在实际开发中,Linux服务器都在其他的地方,我们要通过windows客户端工具远程去连接Linux并操作它,连接Linux的windows客户端工具有很多,企业中常用的有secureCRT、Putty、xshell、SSH Secure等。
​ 我使用secureCRT客户端工具进行连接Linux操作系统,该工具是图形化界面和命令行窗口集一身客户端工具。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Linux软件安装

介绍
Linux上的软件安装有以下常见的几种方式

1.  二进制发布包(相当于压缩包)
		软件已经针对具体平台编译打包发布,只要解压,修改配置即可。例如:tomcat
		
2.	RPM包(相当于windows中的exe)
		软件已经按照redhat的包管理工具规范RPM进行打包发布,需要获取到相应的软件RPM发布包,然后用RPM命令进行安装和使用。例如:mysql
		命令:
			安装:rpm -ivh rpm文件
			升级:rpm -Uvh rpm文件
			卸载:rpm -e --nodeps 软件名
			查看所有安装的软件:rpm -qa
		
3.	Yum在线安装
		软件已经以RPM规范打包,但发布在了网络上的一些服务器上,可用yum在线安装服务器上的rpm软件,并且会自动解决软件安装过程中的库依赖问题。
		
4.	源码编译安装(redis,nginx)
		软件以源码工程的形式发布,需要获取到源码工程后用相应开发工具进行编译打包部署。

获取安装资源

  方式1:我们可以先下载到windows上,然后通过上传下载工具实现和linux的互通(CRT上自带put命令就可以将一些文件上传到linux下.或者使用其他工具例如:FX)
在这里插入图片描述

  方式2:我们可以通过 wget 网址 直接下载到linux服务器上

  方式3:yum 在线安装

1.jdk安装

注意:
  centos其他版本中有可能已经安装了一款jdk,我们安装之前需要先查询有无jdk,若有的话且不是我们想要的jdk需要先卸载再安装
rpm -qa | grep java
rpm -qa | grep jdk

rpm -e --nodeps 查询出来的软件包 <—— (卸载)

大概步骤:
	下载 包
	安装
	配置环境变量
详细步骤:
1. 把jdk从windows上传到linux下,通过crt工具来操作  按下 alt+p 可以拖着软件上传到root目录下
2. 在usr/local下新建一个目录java
   mkdir /usr/local/java
3. 解压jdk到 /usr/local/java
   tar -xvf /root/jdk...  -C /usr/local/java
4. 配置环境变量 /etc/profile,在文件末尾加上以下两行代码
   #export JAVA_HOME=JDK的安装目录,不要到bin下
   #export PATH=$JAVA_HOME/bin:$PATH
   
   #编辑/etc/profile   
   vi  /etc/profile
   #在文件末尾加上以下两行代码,定位到文件末尾  G,然后按下o,另起一个空行
       export JAVA_HOME=/usr/local/java/jdk1.8.0_181
       export PATH=$JAVA_HOME/bin:$PATH
   #保存退出
5. 可以重启电脑,也可以重新加载配置文件
   source /etc/profile
6. 测试是否安装成功
   java -version

2.tomcat安装

大概步骤:
	下载到windows系统,上传到linux系统上
	解压,启动
	测试
详细步骤	
1. 上传到linux系统上
2. 在usr/local新建一个tomcat目录,将tomcat解压此目录下
   mkdir /usr/local/tomcat
   mv apache-tomcat... /usr/local/tomcat
   tar -xvf apache-tomcat... 
3. 启动tomcat,在bin目录下有startup.sh,进入bin目录,运行命令
  sh startup.sh
4. 放行防火墙的8080端口号
  firewall-cmd --zone=public --add-port=8080/tcp --permanent
5. 重启防火墙
  systemctl restart firewalld



注意:开放Linux的对外访问的端口8080
在centos7中内置的防火墙为firewall;在centos6中内置的iptables

终止tomcat:
方式1: sh shutdown.sh
方式2: 可以通过kill -9 杀死

3.mysql安装

步骤:
	1.下载,上传
	2.使用rpm安装服务器端
	3.使用rpm安装客户端
	4.测试使用(用windows上的小海豚)
详细步骤:
1. 上传mysql文件到linux下
2. 查询linux服务器上是否有mysql或者maria,centos7自带了mariadb,需要先卸载mariadb;centos6中自带mysql
   rpm -qa | grep maria
   rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
3. 创建一个/usr/local/mysql目录,将mysql系列文件移动到mysql目录下,然后解压
   mkdir /usr/local/mysql
   mv /root/My....  /usr/local/mysql
   tar -xvf My...
   
4. 安装若干依赖(否则安装server端会报错)
   #   libaio.so.1
   #   libc.so.6
   #   libgcc_s.so.1(这个版本有冲突,需要先卸载再安装)
   #   libstdc++.so.6(这个版本有冲突,需要先卸载在安装)
   yum install libaio.so.1 libc.so.6
   
   # 查询且卸载libgcc_s.so.1 libstdc++.so.6
   rpm -qa | grep libgcc
   rpm -e --nodeps libgcc-4.8.5-36.el7_6.2.x86_64
   rpm  -qa | grep  libstdc
   rpm -e --nodeps libstdc++-4.8.5-16.el7.x86_64
   
   # 安装依赖
   yum install  libgcc_s.so.1 libstdc++.so.6

5. 先安装服务器端
   rpm -ivh Mysql-server....
  # 等客户端安装成功,然后启动mysql服务器之后,我们需要给服务器的root用户设置一个密码,
  # /usr/bin/mysqladmin -u root password '****'

6. 安装客户端之前,需要安装客户端的依赖 libncurses.so.5
  yum install libncurses.so.5
7. 安装客户端
  rpm -ivh Mysql-client....
8. 先查看mysql是否启动,若没有启动再启动mysql,给root设置密码了
  service mysql status 
  # service mysql start #启动mysql
  # 启动成功后设置密码
  /usr/bin/mysqladmin -u root password '1234'
9. 使用linux系统登录mysql服务器
10. 处理中文乱码
  cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
  vi /etc/my.cnf
  # 搜索mysqld 可以在命令行模式下 /mysqld 回车
  # 在mysqld下添加 character-set-server=utf8
  # 保存退出
  # 重新mysql服务器	
  service mysql restart
  
11. 使用windows的小海豚远程登录mysql服务器,需要先放行3306端口号.然后开通远程权限.
  firewall-cmd --zone=public --add-port=3306/tcp --permanent
  systemctl restart firewalld
  
12. 开启mysql的远程登录权限
  # 默认情况下mysql为安全起见,不支持远程登录mysql,所以需要设置开启远程登录mysql的权限
  # 登录mysql后输入如下命令:
  grant all privileges on *.* to 'root'@'%' identified by '1234';
  flush privileges;

可以拍摄快照备份一下
在这里插入图片描述

4.redis安装

详细步骤:

1. 上传
2. 创建/usr/local/redis目录,然后解压到此目录
   mkdir /usr/local/redis
   mv /root/redis... /usr/local/redis
   cd /usr/local/redis
   tar -xvf redis...
3. 安装gcc-c++ 依赖
   yum install gcc-c++
   
4. 编译redis
  cd /usr/local/redis/redis-3.0.7
  make
5. 安装redis,成功之后就会多出来一个bin目录,有服务器端和客户端
  make PREFIX=/usr/local/redis install

6. 在redis的bin目录下启动服务器端
  # 启动方式1:前台启动,占用当前的工作窗口,这种方式不推荐
  ./redis-server
  # 启动方式2:推荐后台启动
  # a.复制配置文件redis.conf到bin目录下,修改配置文件为后台启动
   cp /usr/local/redis/redis.../redis.conf /usr/local/redis/bin
   vi /usr/local/redis/bin/redis.conf  
   # b.将 daemonize no 改成 daemonize yes	#使用/daemonize搜索
   # c.启动服务器指定配置文件 现在的配置文件和服务器端在一个目录下
   ./redis-server redis.conf
   
7. 使用客户端连接服务器端测试
  ./redis-cli [-h 数据库的ip地址] [-p 端口号]
  
8. 使用客户端将redis关闭
  #方式1: 登录redis后发送shutdown
  #方式2: 不登陆 ./redis-cli shutdown
  
9. 若需要外界访问redis,放行6379
  firewall-cmd --zone=public --add-port=6379/tcp --permanent
  systemctl restart firewalld

5.项目发布

备份还原数据库
在这里插入图片描述
将war包部署到tomcat上

  • 通过maven的package命令打包
  • 将war放入linux下的/usr/local/tomcat/ap…/webapps 目录下
  • 保证 mysql和redis可以访问

Nginx

简介

  Nginx 是一款高性能的 http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师伊戈尔·西索夫(Igor Sysoev)所开发,官方测试 nginx 能够支支撑 5 万并发链接,并且 cpu、内存等资源消耗却非常低,运行非常稳定。

  Nginx官网地址:http://nginx.org/

Nginx 应用场景

  1、http 服务器。Nginx 是一个 http 服务可以独立提供 http 服务。可以做网页静态服务器。

  2、反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用 nginx 做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。
在这里插入图片描述

Linux安装Nginx

1. 直接在linux上下载或者先下载到windows然后在上传到linux上
   # 联网下载的命令
   # wget http://nginx.org/download/nginx-1.16.0.tar.gz
2. 创建/usr/local/nginx目录,然后解压到此目录
   mkdir /usr/local/nginx
   mv /root/nginx... /usr/local/nginx
   cd /usr/local/nginx
   tar -xvf nginx...

3. 安装依赖 gcc-c++(redis已安装过,可以忽略)
   yum install gcc-c++
   
4. 安装其他依赖(正则、压缩函数库、安全通信)
   yum -y install pcre pcre-devel  
   yum -y install zlib zlib-devel  
   yum -y install openssl openssl-devel

5. 进入解压目录,编译安装
   cd /usr/local/nginx/nginx-1.16.0
   # 编译并安装
   ./configure  --prefix=/usr/local/nginx
   make
   make install
   # 安装成功之后,会多出了几个目录,其中有一个sbin目录.
   
6. 进入nginx的sbin目录启动nginx
   ./nginx
   
7. 停止和重启
  # ./nginx -s stop
  # ./nginx -s reload
  
8. 放行80端口号
   firewall-cmd --zone=public --add-port=80/tcp --permanent
   systemctl restart firewalld
nginx.conf配置文件介绍

nginx/conf/nginx-conf

server {
	listen 80;						#监听的端口为 80 (默认端口)
	server_name localhost;			#虚拟主机的域名为 localhost(默认域名)
	location / {					#当访问路径为"/"的时候的配置
		root html;					#访问的目录为nginx下的html目录
		index index.html index.htm;	#默认首页为 html/index.html 或者 html/index.htm
	}
	
	....
}

简单的说就是若我们访问的 主机ip:80的时候 就会访问nginx目录下的html下的index.html或者index.htm

反向代理

  反向代理(ReverseProxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

  首先我们先理解正向代理,如下图:
在这里插入图片描述
  正向代理是针对你的客户端,而反向代理是针对服务器的,如下图:
在这里插入图片描述
  正向代理中,proxy和client同属一个局域网(Local Area Network,LAN),对server透明;

  反向代理中,proxy和server同属一个局域网(Local Area Network,LAN),对client透明;

  实际上proxy在两种代理中做的事都是代为收发请求和响应,不过从结构上来看正好左右互换了下,所以把后出现
的那种代理方式叫反向代理。

配置反向代理
可以通过SecureCRTPortable软件将linux服务器上的nginx.conf文件下载到本地然后进行修改,再放回linux服务器。
配置内容:

 #upstream 服务器名 (名字随便取) 
upstream tomcat_llz{
    #本地的也可以写为 server localhost 
	server 192.168.xxx.yyy:8080; 
}

server {
    listen       80; # 监听的端口
    server_name  localhost; # 域名或ip
    location / {	# 访问路径配置
    # root   index;# 根目录
    proxy_pass http://tomcat_llz;
    index  index.html index.htm; # 默认首页
    }
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#进入/nginx/sbin目录下,在crt控制台输入 ./nginx -s reload重启nginx然后重新登录访问
./nginx -s reload

Nginx负载均衡

  负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

​  负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。
配置负载均衡

upstream tomcat_llz{
	server 192.168.xxx.yyy:8080 weight=2;# weight是权重
    server 192.168.xxx.yyy:8081 weight=1;
}

server {
    listen       80; # 监听的端口
    server_name  localhost; # 域名或ip
    location / {	# 访问路径配置
    # root   index;# 根目录
    proxy_pass http://tomcat_llz;
    index  index.html index.htm; # 默认首页
    }
}

扩展:常用的负载均衡策略:
在这里插入图片描述
轮询和权重的方式目前存在session没有共享的问题

  • 解决session共享问题
    • 方案1:使用tomcat广播session
    • 方式2:使用session分离技术

如使用ip_hash的方式,没有session共享的问题,请求来的时候,根据ip地址进行hash运算得出一个值,根据这个值去选择使用那个tomcat服务器.
在这里插入图片描述

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值