VM 虚拟机中CenterOs7 Nginx学习笔记(内有jdk,tomcat安装配置),案例

Nginx安装

  1. 安装依赖
yum install gcc gcc-c++ make automake autoconf libtool pcre* zlib openssl openssl-devel
  1. 进入 /mnt 目录,在此下载nginx压缩包
wget http://nginx.org/download/nginx-1.7.0.tar.gz
  1. 用命令解压压缩包
tar -zxvf nginx-1.7.0.tar.gz
  1. 解压后再 /mnt目录下得到 nginx-1.7.0的文件夹,进入该文件夹,并执行以下命令进行配置安装路径。
    /usr/local/nginx 指定了安装的路径。
./configure --prefix=/usr/local/nginx
  1. 开始使用命令编译安装
make && make install
  1. 安装完成后进入安装路径 启动nginx
    注意:/usr/local/nginx/sbin/ 在目录下才可以使用nginx的相关命令。
/usr/local/nginx/sbin/nginx -s reload
  1. nginx 中默认的配置文件路径 /usr/local/nginx/conf/nginx.conf中指定的访问的端口为80,服务器名为localhost;而centerOs中的防火墙默认关闭80端口,所以物理机中无法通过80端口访问。此时我们需要让防火墙允许80端口的访问。
firewall-cmd --state  #查看防火墙firewall运行状态

若防火墙开启,则添加80端口

firewall-cmd --add-port=80/tcp

查看防火墙已经开放的端口

firewall-cmd --list-all

防火关闭则打开

systemctl start firewalld.service
  1. 查看虚拟机中分配到IP地址
ip addre

若使用该命令没有看到inet对应 的IP地址。
则使用命令:

vi /etc/sysconfig/network-scripts/ifcfg-ens33

将其中

ONBOOT=NO  
改为
ONBOOT=YES

保存退出后执行重启网络命令

 sudo service network restart

在这里插入图片描述
9. 回到物理机的浏览器中访问
在这里插入图片描述

Nginx命令操作

进入 /usr/local/nginx/sbin/ ,在此目录下进行nginx命令的相关操作。

  1. 查看版本
./nginx -v

在这里插入图片描述

  1. 关闭nginx
./nginx -s stop
  1. 启动nginx
./nginx
  1. 重新加载配置(非重启)
./nginx -s reload

Nginx 的相关配置

配置文件存放路径:/usr/local/nginx/conf/nginx.conf
在这里插入图片描述

nginx配置文件的组成部分

组成部分如下图:在这里插入图片描述

  1. 全局块(上图红色部分):从配置文件第一行开始到events之中的部分,其中配置的是影响nginx运行的配置。
    例如:
woker_processes 1;      # 并发服务配置,值越大处理的并发服务越多,受到硬件软件等因素影响。
  1. events(上图蓝色部分):配置nginx与用户网络连接的相关内容。
    例如:
woker_connections 1024;      # 设置最大的连接数
  1. http(上图绿色部分):是nginx中修改最频繁的部分。代理,缓存,日志,第三方模块配置都要在此进行配置。
    http有两部分组成:http全局块(下图红色部分) 和 server块(下图黄色部分) 。 如下图

在这里插入图片描述
http全局块:其中包括文件引入MIME-TYPE定义日志自定义连接超时时间单连接请求数上限等。

server块:每个http中可以包含多个server,每个 server相当一个虚拟主机。每个server块中由两部份组成:全局server块location块
全局server块:常见配置为配置本虚拟主机的访问端口,虚拟主机名称,IP等
location块:一个server块中可存在多个location块。该部分主要配置基于nginx接收到的请求字符串。对特定的请求进行处理。地址指向、数据缓存应答控制,第三方模块配置等。

Nginx配置案例

案例一:反向代理

实现效果:
在物理机的浏览器中输入www.zhangxiaosan.top.tomcat,跳转到虚拟机centerostomcat主页中。

准备:

  1. 在centerOs7中安装JDK:
    使用以下命令进行安装JDK
	1.	mkdir /usr/local/java # 创建文件夹
	2.	cd  /usr/local/java # 进入目录
	3.	wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz"  # 下载jdk1.8压缩包
	4.	tar -zxvf jdk-8u141-linux-x64.tar.gz  # 解压jdk压缩包
	5.	mv jdk1.8.0_141/ jdk8   # 将解压的文件夹重命名
	6.	vim /etc/profile # 配置环境变量	
	
	# 在profile  文件末尾加入以下配置,并保存退出编辑
	7.	 	export JAVA_HOME=/usr/local/java/jdk8
  		export PATH=$JAVA_HOME/bin:$PATH
			export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar
	
	8. source /etc/profile  # 重新加载配置
  1. 在centerOs7中安装tomcat。使用默认8080端口
	1. mkdir  /usr/local/tomcat 	#创建文件夹
	2. cd /usr/local/tomcat 	# 进入文件夹
	3. wget https://mirrors.bfsu.edu.cn/apache/tomcat/tomcat-8/v8.5.61/bin/apache-tomcat-8.5.61.tar.gz 	#下载tomcat 压缩包
	4. tar -zxvf apache-tomcat-8.5.61.tar.gz  # 解压压缩包
	5. mv apache-tomcat-8.5.61 tomcat	#将解压的文件夹重命名
	6. cd /usr/local/tomcat/tomcat/bin/ # 进入tomcat的bin目录
	7. vim catalina.sh #编辑文件
	
	# 在catalina.sh配置文件末尾添加tomcat 环境变量
	8. 	JAVA_OPTS="-Xms512m -Xmx1024m -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=1024m"
		export TOMCAT_HOME=/usr/local/tomcat/tomcat
		export CATALINA_HOME=/usr/local/tomcat/tomcat
		export JRE_HOME=/usr/local/java/jdk8/jre
		export JAVA_HOME=/usr/local/java/jdk8

	9. cd /usr/local/tomcat/tomcat/bin		#进入tomcat的bin 目录
	10. ./startup.sh 	#启动tomcat

使用命令查看tomcat进程:

ps -ef|grep java

如下图所示,说明已经启动。
在这里插入图片描述
tomcat 默认的端口是8080
防火墙中并未添加该端口,给防火墙配置放行8080端口。

firewall-cmd --add-port=8080/tcp

在centerOs7 中使用命令查看IP地址:

ip addre

在这里插入图片描述
在物理机中访问centerOs7的IP地址和端口号,如下图,就能进入tomcat界面:
在这里插入图片描述

说明

下图为反向代理的流程图:在这里插入图片描述
开始

  1. 物理机中进入C:\Windows\System32\drivers\etc在此目录下的host文件中添加
192.168.83.128 	www.zhangxiaosan.top.tomcat  #192.168.83.128 为虚拟机centeros中的ip

在这里插入图片描述
2. 在虚拟机的centerOs中进入nginx的conf目录下

cd /usr/local/nginx/conf/

3.修改nginx的代理配置

vim nginx.conf

在这里插入图片描述
将上图的配置改成虚拟机centerOs 的IP地址

server_name	 192.168.83.128

location中添加以下的配置

proxy_pass http://127.0.0.1:8080   #配置反向代理的tomcat地址和端口

在这里插入图片描述
回到物理机中进行访问
在这里插入图片描述

案例2 :使用正则表达式配置代理

说明:

  1. 访问http://www.zhangxiaosan.top.tomcat:9001/api/跳转到http://127.0.0.1:8081/index.html
  2. 访问http://www.zhangxiaosan.top.tomcat:9001/server/跳转到http://127.0.0.1:8080/index.html
    基于案例一的基础上,8080的tomcat已经存在,此时需要一个8081端口的tomcat。
    按照案例一中的步骤解压tomcat压缩包,并重命名为tomcat_8081.如下所示:
    在这里插入图片描述
    进入tomact_8081文件夹,进入conf文件夹,编辑server.xml,修改默认访问的端口8080为8081.
    如下
    在这里插入图片描述
    额外修改shutdown部分的端口。
    在这里插入图片描述
    进入nginx的配置文件夹中修改nginx.conf 文件,如下:
    HTTP域中添加以下配置:
    在这里插入图片描述
    配置说明:
server{
	listen 9001#nginx监听的接口
	server_name 192.168.83.128;#centeros的IP地址
	location ~/api/{ #正则表达式,所有带有api的请求
		proxy_pass http://127.0.0.1:8001; #代理目标
	} 
	location ~/server/{  #正则表达式,所有带有server的请求
		proxy_pass http://127.0.0.1:8080; #代理目标
	} 
}

内容说明:

  1. = : 用于不含正则表达式的uri前,要求请求字符串与uri严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。
  2. ~ : 用于表示uri包含正则表达式,并且区分大小写。。
  3. ~* : 用于表示uri包含正则表达式,并且不区分大小写。。
  4. ^~ :用于不含正则表达式的 uri前,要求Nginx服务器找到标识uri和请求字
    符串匹配度最高的location 后,立即使用此location 处理请求,而不再使用location
    块中的正则uri和请求字符串做匹配。。
    注意:如果uri包含正则表达式,则必须要有 ~ 或者 ~* 标识。

保存配置后推出,并重新执行新配置:
执行新配置

#重启
1. cd /usr/local/nginx/sbin/
2. ./nginx -s reload

防火墙添加9001,8081端口

1. firewall-cmd --add-port=8081/tcp #添加8081端口
2. firewall-cmd --add-port=9001/tcp #添加9001端口

为8080和8081的tomcat添加项目和文件:
进入8080 的tomcat,并在其webapps文件夹下创建server文件夹,并在其中创建index.html文件

1. cd usr/local/tomcat/tomcat/webapps/
2. vim server/index.html #html的内容为<h2>8080</h2>

目录结构:
在这里插入图片描述

进入8081 的tomcat,并在其webapps文件夹下创建server文件夹,并在其中创建index.html文件

1. cd usr/local/tomcat/tomcat_8081/webapps/
2. vim api/index.html #html的内容为<h2>8081</h2>

目录结构如下:在这里插入图片描述
回到物理机测试:
在这里插入图片描述
在这里插入图片描述

案例三:服务器A的nginx代理到服务器B的nginx

说明: 假设有两个服务器,服务器A(192.168.83.129)和服务器B(192.168.83.130)。用户访问服务器A的80端口的指定url时,将该访问转发到服务器B中的。注意,服务器A中对服务器B的访问只做统一的访问入口。如下图所示:
在这里插入图片描述
流程:

  1. 用户访问请求访问192.168.83.129/serverB/serverApi1/…
  2. 服务器A的nginx的80端口配置符合serverB的配置规则,则将请求转发得到服务器B的8080端口。
  3. 服务器B接收到转发的请求后,nginx的8080端口配置符合/serverB/serverApi1/的规则。服务器B将请求访问到代理的相关项目中(相关项目比如spring boot的jar包项目。)

服务器A的nginx配置如下:

server {
        listen       80;
        server_name  localhost;
        
        location / {
            root html;
            index  index.html index.htm;
        }

        location /serverB/  {
                proxy_pass http://192.168.83.130:8080;
                #proxy_redirect default;
                proxy_set_header X-Real-IP $remote_addr;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
}

服务器B的nginx配置如下:

server {
        listen       8080;
        server_name  localhost;
        
        location / {
            root html;
            index  index.html index.htm;
        }

        location /serverB/serverBApi1/  {
                proxy_pass http://192.168.83.130:8000/serverBApi1;
                #proxy_redirect default;
                proxy_set_header X-Real-IP $remote_addr;
        }
        
        location /serverB/serverBApi2/  {
                proxy_pass http://192.168.83.130:8002/serverBApi2;
                #proxy_redirect default;
                proxy_set_header X-Real-IP $remote_addr;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
}

负载均衡

定义:增加服务器数量,将请求分到多个服务器中

案例1 :

效果
在浏览器中输入http://192.168.83.128/loadBalancing/index.html,负载均衡,平均分发到8080和8081中。

准备

  1. 准备两个tomcat,端口为8080和8081,(使用反向代理案例1和2的tomcat即可)
  2. 在8080和8081的webapps文件夹下创建名称loadBalancing文件夹。且在此文件夹中创建文件分别为:
8080: 
	创建文件名为:index.html 
	内容:<h2>loadBalancing  8080</h2>
8081: 
	创建文件名为:index.html 
	内容:<h2>loadBalancing  8081</h2>

物理机测试:
在这里插入图片描述
在这里插入图片描述

进入nginx 的配置文件:
http域中添加以下配置:

#负载均衡服务列表
upstream myLoadBalancing  {  #myLoadBalancing是自定义的名称
	#配置服务器列表:
	server 192.168.83.128:8080;
	server 192.168.83.128:8081;
}
#修改 80端口的server域
server{
	listen 80;
	server_name 192.168.83.128;
	
	localtion /{
		proxy_pass http://myLoadBalancing; #此处配置为负载均衡服务列表名称
		root index;
		index index.html index.htm;
		
	}
}

如下:
在这里插入图片描述
回到物理机测试:
现象:请求的是同一个地址,但是刷新后跳转到的页面确不一样,访问的服务器不一样。
在这里插入图片描述
在这里插入图片描述

负载均衡分配策略
  1. 轮询(默认策略):
    根据请求发起的时间顺序逐一分配到不同的服务器中,若服务器出现异常停止,则能自动剔除。
    轮询策略如下所示:(上述的负载均衡案例1就是采用的轮询方式)
    在这里插入图片描述

  2. 权重策略weight:
    weight表示权重,默认权重为1,数值越大,权重越高,分配请求越多。
    权重策略如下所示:
    在这里插入图片描述

  3. ip_hash:
    每个请求按照访问IP的hash结果进行分配,每个访客固定访问一个后端服务器,可解决session共享问题。
    例如假设当前访问IP为192.168.15.25,则第一次访问时分配到了8080,之后再使用此IP进行访问时,永远分配到的服务器都是8080.除非换IP访问分配到的服务器才会改变。
    ip_hash策略如下:
    在这里插入图片描述

  4. fair:(第三方)
    按照后端服务器响应的时间进行分配,响应时间越短,越优先分配。
    fair策略如下:
    在这里插入图片描述

动静分离

在这里插入图片描述

动静分离案例1:

准备:

  1. 在centeros中准备静态资源。
mkdir /usr/local/staticResource/www  /usr/local/staticResource/images  #创建www和images

vim /usr/local/staticResource/www/test.html #在www中创建一个test.html文件,且内容为:<h1>test static resource html</h1>
  1. 使用工具连接centeros ,并将一张图片上传文件到usr/local/staticResource/images中。
    推荐工具:pshell
    最后文件的结构如下:
    在这里插入图片描述

配置
进入nginx的配置文件
添加新的localtion 配置,如下图所示:

autoindex on 表示列出文件夹内容。如下图:
在这里插入图片描述
点击图片后即可显示上传的图片:
在这里插入图片描述
访问页面测试如下:
在这里插入图片描述

nginx 高可用集群

在这里插入图片描述

配置高可用:

准备:

  1. 在之前的案例基础上安装一台新的centeros虚拟机系统。
  2. 两台都装上nginx ,keepalived
    (省略虚拟机系统的安装步骤和nginx的安装步骤)
    进入**/usr/local/**
    创建文件夹c
    进入该文件夹,使用命令进行安装
yum install keepalived -y

keepalived 安装成功后的安装路径为**/usr/ect/keepalived **
在此路径下可以看到文件,此文件为keepalived的配置文件。
在这里插入图片描述

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小张帅三代

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值