Nginx具体应用

部署静态资源

Nginx可以作为静态web服务器来部署静态资源。静态资源指在服务端真实存在并且能够直接展示的一些文件,比如常见的html页面、css文件、js文件、图片、视频等资源。相对于Tomcat,Nginx处理静态资源的能力更加高效,所以在生产环境下,一般都会将静态资源部署到Nginx中。将静态资源部署到Nginx非常简单,只需要将文件复制到Nginx安装目录下的html目录中即可。
server {
listen 80;#监听端口
server name localhost; 服务器名称

location /{         #匹配客户端请求url
root html;         #指定静态资源根目录
index index.html; #指定默认首页

  }

}

注意:红色的是固定的语法,黑色的可以修改。

反向代理

了解反向代理之前我们应该了解以下正向代理。

正向代理
是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。

正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。

正向代理一般是在客户端设置代理服务器,通过代理服务器转发请求,最终访问到目标服务器。

反向代理
反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源,反向代理服务器负责将请求转发给目标服务器。

用户不需要知道目标服务器的地址,也无须在用户端作任何设定。

配置反向代理
server {
   listen 82;
  server name localhost;
  location /{
      proxy _pass http://192.168.138.101:8080;#反向代理配置,将请求转发到指定服务(IP地址可以修改)

    }

 }

首先要准备两台服务器,两个虚拟机即可。在一个虚拟机上安装nginx进行反向代理。使用vim nginx.conf修改配置文件把上面的代码加入到里面,注意修改,配置在http块里的server块里。

修改完后使用 ./nginx  -s reload(要在sbin目录下操作)前提是要打开nginx服务。

负载均衡


早期的网站流量和业务功能都比较简单,单台服务器就可以满足基本需求,但是随着互联网的发展,业务流量越来越大并且业务逻辑也越来越复杂,单台服务器的性能及单点故障问题就凸显出来了,因此需要多台服务器组成应用集群进行性能的水平扩展以及避免单点故障出现。
应用集群:将同一应用部署到多台机器上,组成应用集群,接收负载均衡器分发的请求,进行业务处理并返回响应数据
负载均衡器:将用户请求根据对应的负载均衡算法分发到应用集群中的一台服务器进行处理

配置负载均衡

upstream targetserver {  #upstream指令可以定义一组服务器

     server 192.168.37.131 :8080

     server 192.168.37.131 :8081

}

这里应该要部署两台服务器因为条件有限就改成一个服务器的两个端口。targetserver只是一个名称可以自己设置,只要和下边的 proxy_pass http://targetserver 两个保持一致就可以了。

server {

    listen  8080;

    server_name  localhost;

   location / {

         proxy_pass http :// targetserver;

        }

}

修改完配置记着 ./nginx  -s reload(要在sbin目录下操作)前提是要打开nginx服务。

负载均衡的策略

名称说明
轮询默认方式
weight权重方式
ip_hash依据ip分配方式
least_conn依据最少连接方式
url_hash依据url分配方式
fair依据响应时间方式

upstream targetserver {  #upstream指令可以定义一组服务器

     server 192.168.37.131 :8080 weigt/ip_hash

     server 192.168.37.131 :8081

}

不设置默认是轮询。

  • 22
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为了在Kubernetes中部署Nginx,您可以按照以下步骤进行操作: 1. 首先,您需要一个Kubernetes集群。确保您已经正确安装和配置了kubectl命令行工具,以便与集群进行交互。 2. 创建一个Nginx的Deployment资源。创建一个YAML文件(例如nginx-deployment.yaml),并在其中定义您的Deployment配置。以下是一个示例配置文件: ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:latest ports: - containerPort: 80 ``` 在此配置中,我们定义了一个名为"nginx-deployment"的Deployment,它将运行3个副本。我们还指定了一个名为"nginx"的容器,使用最新的Nginx镜像,并将容器的80端口暴露出来。 3. 使用kubectl命令将Deployment配置应用到集群中:`kubectl apply -f nginx-deployment.yaml` 4. 检查Deployment的状态:`kubectl get deployments` 5. 创建一个Service资源来公开Nginx的访问。创建一个YAML文件(例如nginx-service.yaml),并在其中定义您的Service配置。以下是一个示例配置文件: ```yaml apiVersion: v1 kind: Service metadata: name: nginx-service spec: selector: app: nginx ports: - protocol: TCP port: 80 targetPort: 80 type: LoadBalancer ``` 在此配置中,我们定义了一个名为"nginx-service"的Service,它将流量转发到具有"app=nginx"标签的Pod。我们还指定了端口80和LoadBalancer类型,以便在集群外部可访问Nginx。 6. 使用kubectl命令将Service配置应用到集群中:`kubectl apply -f nginx-service.yaml` 7. 检查Service的状态:`kubectl get services` 现在,您应该能够通过LoadBalancer的外部IP访问Nginx服务。您可以使用该IP地址在浏览器中访问Nginx欢迎页面。 请注意,上述步骤仅提供了部署一个基本的Nginx服务所需的最小配置。根据您的需求,您可能需要进行其他配置,例如使用持久卷声明(Persistent Volume Claim)来存储Nginx日志文件或自定义Nginx配置等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值