【安全第五次】

本文详细介绍了如何在Linux环境中搭建Nginx,包括下载、配置、安装依赖、设置负载均衡,以及安装php-fpm和Docker进行反向代理。通过实例展示了Nginx如何作为负载均衡器分发请求到多个Web服务器。
摘要由CSDN通过智能技术生成

Nginx环境搭建

1.创建Nginx的目录并进入:

[root@192 centos]# mkdir /home/centos/nginx/

[root@192 centos]# cd /home/centos/nginx

2.下载Nginx的安装包:

通过wget命令在线获取安装包

[root@192 nginx]# wget https://nginx.org/download/nginx-1.21.6.tar.gz

在这里插入图片描述

3.解压Nginx的压缩包:

[root@192 nginx]# tar -xvzf nginx-1.21.6.tar.gz

在这里插入图片描述

4.下载并安装Nginx所需的依赖库和包:

可以通过yum命令一键下载

[root@192 nginx]# yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

紧接着通过rpm命令依次将依赖包一个个构建,或者通过如下指令一键安装所有依赖包:

[root@192 nginx]# rpm -ivh --nodeps *.rpm

5.进入解压后的nginx目录,执行Nginx的配置脚本:

为后续的安装提前配置好环境

[root@192 nginx]# cd nginx-1.21.6

[root@192 nginx-1.21.6]# ./configure --prefix=/soft/nginx/

在这里插入图片描述

6.编译并安装Nginx:

[root@192 nginx-1.21.6]# make && make install

7.回到前面的/home/centos/nginx/目录,输入ls:

即可看见安装nginx完成后生成的文件

[root@localhost nginx]# ls -al

在这里插入图片描述

8.修改安装后生成的conf目录下的nginx.conf配置文件:

在这里插入图片描述

修改端口号:listen 80;
修改IP地址:server_name 你当前机器的本地IP(线上配置域名);

在这里插入图片描述

9.制定配置文件并启动Nginx:

[root@localhost nginx]# .sbin/nginx -c conf/nginx.conf
[root@localhost nginx]# ps -ef | grep nginx

在这里插入图片描述

10.在Windows/Mac的浏览器中,直接输入刚刚配置的IP地址访问Nginx:

存在防火墙的问题,需要先调整一下
在这里插入图片描述

然后即可在浏览器中访问Nginx:

在这里插入图片描述

安装php-fpm

安装:

[root@localhost nginx]# yum install php php-fpm

查看版本:

在这里插入图片描述

修改权限以及配置文件:

在这里插入图片描述

统一都为apache
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在nginx.conf配置文件中, location .php$ 模块下,修改/SCRIPT为$document_root

在这里插入图片描述

在这里插入图片描述

启动并检查:

在这里插入图片描述

在这里插入图片描述

安装docker

解压docker环境

在这里插入图片描述

在这里插入图片描述

直接执行 docker compose up -d 启动容器,无需编译。

Nginx反向代理-负载均衡

首先通过SpringBoot+Freemarker快速搭建一个WEB项目:springboot-web-nginx然后在该项目中,创建一个IndexNginxController.
java文件,逻辑如下:

@Controller
public class IndexNginxController {             
    @Value("${server.port}")    
    private String port;    
    @RequestMapping("/")
    public ModelAndView index(){        
       ModelAndView model = new ModelAndView();        
       model.addObject("port", port);        
       model.setViewName("index");        
       return model;   
  }
}

在该Controller类中,存在一个成员变量:port,它的值即是从application.properties配置文件中获取server.port值。当出现访问/资源的请求时,跳转前端index页面,并将该值携带返回。

前端的index.ftl文件代码如下:

<html>
    <head>        
    <title>Nginx演示页面</title>              
    <link href="nginx_style.css" 
    rel="stylesheet" type="text/css"/>    
    </head>    
    <body>        
     <div style="border: 2px solid red;margin: auto;width: 800px;text-align: center">            
       <div  id="nginx_title">                
          <h1>欢迎来到熊猫高级会所,我是竹子${port}号!</h1>            
       </div>        
     </div>    
    </body>
</html>

从上可以看出其逻辑并不复杂,仅是从响应中获取了port输出。

前提工作准备就绪后,再简单修改一下nginx.conf的配置即可:

upstream nginx_boot{   
    # 30s内检查心跳发送两次包,未回复就代表该机器宕机,请求分发权重比为1:2   
    server 192.168.0.000:8080 
    weight=100 max_fails=2 
    fail_timeout=30s;    
    server 192.168.0.000:8090 
    weight=200 max_fails=2 
    fail_timeout=30s;   
    # 这里的IP请配置成你WEB服务所在的机器IP
    }
    server {    
       location / {        
       root   html;        
       # 配置一下index的地址,最后加上index.ftl。        
       index  index.html index.htm 
 index.jsp index.ftl;        
       proxy_set_header Host $host;        
       proxy_set_header X-Real-IP $remote_addr;        
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        
       # 请求交给名为nginx_boot的upstream上        
       proxy_pass http://nginx_boot;    
    }
 }

至此,所有的前提工作准备就绪,紧接着再启动Nginx,然后再启动两个web服务,第一个WEB服务启动时,在application.properties配置文件中,将端口号改为8080,第二个WEB服务启动时,将其端口号改为8090。

因为配置了请求分发的权重,8080、8090的权重比为2:1,因此请求会根据权重比均摊到每台机器,也就是8080一次、8090两次、8080一次

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值