nginx的反向代理
安装包链接https://nginx.org/download/nginx-1.26.1.tar.gz
yum -y install gcc gcc-c++ pcre-devel openssl-devel
[root@staticserver ~]# tar -xzvf nginx-1.26.1.tar.gz
[root@staticserver nginx-1.26.1]#./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-stream
[root@staticserver nginx-1.26.1]# make && make install
[root@staticserver nginx-1.26.1]# useradd -s /bin/nologin -M nginx
不用使用systemctl启动,也不要使用脚本启动
[root@model nginx-1.26.1]# /usr/local/nginx/sbin/nginx
[root@model nginx-1.26.1]# vim /usr/local/nginx/conf/nginx.conf
复制43-46到47,进行修改:
[root@model nginx-1.26.1]# /usr/local/nginx/sbin/nginx -s reload
将当前的主机作为前端服务器,用于接收和响应客户端,代理另外一台主机,克隆一台主机。
修改index.html文件,并且发布web服务
[root@dynamicserver ~]# echo "this is java web srver " > /usr/local/nginx/html/index.html
启动nginx服务
[root@dynamicserver ~]# /usr/local/nginx/sbin/nginx
使用curl 访问当前项目
[root@dynamicserver ~]# curl localhost
this is java web srver
由于没有部署tomcat服务,所以使用nginx代替
切换到静态主机
修改nginx中的html文件
[root@staticserver ~]# echo "this is static server " > /usr/local/nginx/html/index.html
[root@staticserver ~]# /usr/local/nginx/sbin/nginx 启动nginx
[root@staticserver ~]# ps -aux| grep nginx 查看进程
[root@staticserver ~]# curl localhost
this is static server
[root@staticserver ~]# curl 192.168.2.40 访问40主机
this is java web srver
使用39主机代理40主机,当用户访问39的时候,39主机不响应,而是由40主机响应
使用39主机nginx反向代理40的服务器
location proxy_pass 协议 域名 端口
修改配置文件[root@staticserver ~]# vim /usr/local/nginx/conf/nginx.conf
46行
[root@staticserver ~]# /usr/local/nginx/sbin/nginx -s reload
访问192.168.2.40,代理192.168.2.39
现在的静态服务器实际上是代理服务器,nginx代理其他服务的时候,不需要对方同意,更加方便了模块化操作(如果代理服务器,阿双方都需要同意,之前的依赖太高,不便于模块化操作)
总结:
1.一班来说使用nginx代理动态服务器,例如代理tomcat发布的web服务
2.在这个案例中是使用nginx代替的
3.nginx反向代理,是不需要被代理的服务同意的,只需要在nginx中location中配置
./sbin/nginx -s reload 重载配置文件
负载均衡的基础
白名单,黑名单
再克隆一台机器allow,安装步骤如上
[root@allow nginx-1.26.1]# /usr/local/nginx/sbin/nginx
[root@allow nginx-1.26.1]# echo "you are lucky" > /usr/local/nginx/html/index.html
[root@allow nginx-1.26.1]# curl localhost
you are lucky
在192.168.2.40主机访问,可以访问到
[root@dynamicserver ~]# curl 192.168.2.41
you are lucky
设置192.168.2.40主机可以访问,其他主机不能访问
在配置文件中中的server模块中设置
allow 允许
deny 禁止
可以对ip生效,也可以对网段生效
[root@allow nginx-1.26.1]# vim /usr/local/nginx/conf/nginx.conf
[root@allow nginx-1.26.1]# /usr/local/nginx/sbin/nginx -s reload
访问:
初始安装nginx的时候 logs 日志文件
[root@allow nginx-1.26.1]# cd /usr/local/nginx/
[root@allow nginx]# tree logs/
logs/
├── access.log
├── error.log
└── nginx.pid
0 directories, 3 files
[root@allow nginx]# cat access.log 用户访问的信息
[root@allow nginx]# cat logs/error.log 访问报错的信息
负载均衡
准备四台机器,安装nginx,并且启动nginx
修改static主机的配置文件
[root@staticserver ~]# vim /usr/local/nginx/conf/nginx.conf
[root@staticserver ~]# /usr/local/nginx/sbin/nginx -s reload
权重
平滑升级
服务持续期间对nginx升级
下载新的nginx
338 wget https://nginx.org/download/nginx-1.27.0.tar.gz
339 tar -zxvf nginx-1.27.0.tar.gz
340 cd nginx-1.27
341 cd nginx-1.27.0
343 ./configure --prefix=/usr/local/nginx/ --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-stream
344 make && make install
[root@staticserver nginx-1.27.0]# ls /usr/local/nginx/sbin/
nginx nginx.old
[root@staticserver nginx-1.27.0]# /usr/local/nginx/sbin/nginx -v
nginx version: nginx/1.27.0
[root@staticserver nginx-1.27.0]# /usr/local/nginx/sbin/nginx.old -v
nginx version: nginx/1.26.1
349 ps -aux | grep nginx
350 kill -USR2 4636
351 ps -aux | grep nginx
352 kill -USR2 1367
353 ps -aux | grep nginx
354 kill -WINCH 4636
355 kill -QUIT 1367
356 ps -aux | grep nginx
还可以访问到页面,升级成功
配置tomcat10
必须在jdk17以上的版本运行
在实际的工作中,不需要这么高的版本,在实训,要求使用新版本,新版本,我们使用新版本,是为了让大家指定各个程序之间版本依赖管理
321 wget https://download.oracle.com/java/22/latest/jdk-22_linux-x64_bin.tar.gz
322 tar -zxvf jdk-22_linux-x64_bin.tar.gz
323 ls
324 cd jdk-22.0.2/
326 cd bin/
327 ./java
330 cd
331 mv -r jdk-22.0.2/ /usr/local/jdk22/
332 mv jdk-22.0.2/ /usr/local/jdk22/
333 ls /usr/local/jdk22/
334 ls
335 cd /usr/local/jdk22/
336 pwd
337 sed -n '$p' /etc/profile
338 sed -i '$aexport JAVA_HOME=/usr/local/jdk22' /etc/profile
339 sed -n '$p' /etc/profile
340 source /etc/profile
341 $JAVA_HOME
342 vim /etc/profile
343 java
344 sed -i '$aPATH=$JAVA_HOME/bin:$PATH' /etc/profile
345 sed -n '$p' /etc/profile
346 java -version
[root@dynamicserver ~]# wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.26/bin/apache-tomcat-10.1.26.tar.gz