nginx基础篇学习

一、nginx编译安装

1、前往nginx官网获取安装包

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

下载安装包

在这里插入图片描述
2、解压

在这里插入图片描述
3、安装

进入安装包
在这里插入图片描述
安装准备:nginx的rewrite module重写模块依赖于pcre、pcre-devel、zlib和zlib-devel库,要先安装这些库
在这里插入图片描述
在这里插入图片描述
安装:
在这里插入图片描述

编译:
在这里插入图片描述
启动:

进入到安装目录:
在这里插入图片描述
conf:配置文件目录
html:网页文件
logs:日志文件,访问日志、错误日志,pid文件
sbin:主要的二进制程序

启动nginx:
在这里插入图片描述
完整命令是:
开启:/usr/local/nginx/sbin/nginx
关闭:/usr/local/nginx/sbin/nginx -s stop
重启:/usr/local/nginx/sbin/nginx -s reload

查看进程:

在这里插入图片描述
nginx命令:
在这里插入图片描述

二、nginx信号控制

nginx信号控制

在这里插入图片描述
具体语法:

Kill -信号选项 nginx的主进程号

Kill -HUP 4873

Kill -信号控制 `cat /xxx/path/log/nginx.pid` #从进程文件读取进程号

Kill -USR1 `cat /xxx/path/log/nginx.pid`

三、nginx配置文件

//全局区
#user  nobody; 子进程用户组
worker_processes 4; // 有4个工作子进程,可以自行修改,但太大无益,因为要争夺CPU,一般设置为CPU数*核数

#error_log  logs/error.log; 全局日志
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
	//一般是配置nginx连接的先进性
	//如1个worker能同时允许多少连接
	worker_connections	1024;//这是指一个子进程最大允许连接1024个连接
}
http {//这是配置http服务器的主要段
	//基于域名的虚拟主机
	server {//这是配置虚拟主机段
		listen 						80;//监听80端口
		server_name					www.example.com;//监听域名
		location / {//定位,把特殊的路径或文件再次定位,如image目录单独处理,如.php单独处理
			root					/var/www/www.example1.com;// 根目录定位,若是采用相对目录,则是相对nginx的安装目录
			index					index.html	index.htm;// 默认首页
		}
	}
	//基于端口的虚拟主机
	sever {
		listen						8080;
		server_name					127.0.0.1; 
		location / {
			root					/var/www/www.example2.com;// 根目录定位
			index					index.html	index.htm;// 默认首页
		}
	}
}

nginx也允许针对不同的server做不同的log日志

在server段加入:

access_log logs/host.access.log main;

四、nginx配置反向代理

  • 正向代理:
    正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获取得内容返回给客户端。
    正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。
    正向代在这里插入图片描述
    理一般是在客户端设置代理服务器,通过代理服务器转发请求,最终访问到目标服务器。

  • 反向代理:
    反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源,反向代理服务器负责将请求转发给目标服务器。
    用户不需要知道目标服务器的地址,也无须在用户端作任何设定
    一般大型项目只会暴露部分外网服务器,然后通过这些服务器请求自身内网的服务。
    在这里插入图片描述

server {
	listen 82; # 将82端口接收到的请求转发到proxy_pass配置中
	server_name localhost;
	location / {
		proxy_pass http://192.168.138.101:8000; # 反向代理配置,将请求转发到指定服务
	}
}

在这里插入图片描述
五、nginx配置负载均衡

早期的网站流量和业务功能都比较简单,单台服务器就可以满足基本需求,但是随着互联网的发展,业务流量越来越大并且业务逻辑也越来越复杂,单台服务器的性能及单点故障问题就突显出来了,因此需要多台服务器组成应用集群,进行性能的水平扩展以及避免单点故障出现

  • 应用集群:将同一应用部署到多台机器上,组成应用集群,接收负载均衡器分发的请示,进行业务处理并返回响应数据
  • 负载均衡器:将用户请示根据对应的负载均衡算法分发到应用集群中的一台服务器进行处理

在这里插入图片描述

# 配置负载均衡 upstream 指令可以定义一组服务器
upstream targetserver {
	server 192.168.138.100:8080;
	server 192.168.138.101:8080;
	server 192.168.138.102:8080;
	server 192.168.138.103:8080;
}
server {
	listen 8080;
	server_name localhost;
	location / {
		proxy_pass http://targetserver; # proxy_pass需要对应upstream配置的服务器组
	}
}

负载均衡策略

名称说明
轮询默认方式
weight权重方式
ip_hash依据ip分配方式
least_con依据最少连接方式
url_hash依据url分配方式
fair依据响应时间方式
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Docker 是一个开源的容器化平台,它可以让开发者将应用程序和其依赖项打包成一个容器,使得应用程序在不同的环境中都能够运行。Docker 提供了一种新的方式来构建、部署和运行应用程序,它可以大大降低开发和运维成本,提高应用程序的可移植性和可靠性。 本文将介绍 Docker 的基础知识,包括 Docker 的安装、镜像和容器的管理、容器的网络和存储等方面。 ## Docker 的安装 Docker 官方支持多个操作系统,包括 Linux、Windows 和 macOS。在不同的操作系统中,Docker 的安装方式也有所不同。在 Linux 系统中,可以通过以下命令来安装 Docker: ```shell curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh ``` 在 Windows 和 macOS 中,可以下载 Docker Desktop 来安装 Docker。 ## Docker 镜像和容器的管理 Docker 镜像是应用程序和其依赖项的打包格式,可以通过 Dockerfile 来定义。Dockerfile 是一个文本文件,其中包含了应用程序的构建规则和依赖项的安装方式。通过 Dockerfile 构建的镜像可以上传到 Docker Hub 或者私有仓库中,其他人可以通过 Docker Hub 或者私有仓库来获取镜像。 创建 Docker 镜像的方式很多,可以通过手动构建、基于现有镜像构建、使用 Docker Compose 等方式来创建镜像。以下是一个基于 Ubuntu 镜像创建 Node.js 应用程序的 Dockerfile: ```dockerfile FROM ubuntu:18.04 RUN apt-get update && apt-get install -y nodejs npm COPY . /app WORKDIR /app RUN npm install EXPOSE 3000 CMD ["npm", "start"] ``` 通过以上 Dockerfile 可以构建出一个包含 Node.js 应用程序的镜像。接下来,我们可以使用如下命令来启动容器: ```shell docker run -p 3000:3000 -d my-node-app ``` 其中,-p 参数指定了容器端口和主机端口的映射关系,-d 参数指定了容器在后台运行。 通过 docker ps 命令可以查看正在运行的容器,通过 docker stop 和 docker start 命令可以停止和启动容器。 ## 容器的网络和存储 Docker 容器之间可以通过网络进行通信,Docker 提供了多种网络模式,包括桥接模式、主机模式、容器模式和覆盖网络模式等。在默认情况下,Docker 容器使用桥接网络模式,可以通过以下命令创建一个自定义的网络: ```shell docker network create my-network ``` 通过 --net 参数可以将容器加入到指定的网络中。例如,通过以下命令创建一个基于自定义网络的容器: ```shell docker run --name my-nginx -p 80:80 --net my-network -d nginx ``` Docker 容器还可以使用本地存储或者云存储来存储数据。Docker 提供了多种存储驱动程序,包括 overlay2、aufs 和 devicemapper 等。通过以下命令可以创建一个本地存储卷: ```shell docker volume create my-volume ``` 通过 -v 参数可以将容器挂载到指定的存储卷上。例如,通过以下命令创建一个基于本地存储卷的容器: ```shell docker run --name my-mysql -v my-volume:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=password -d mysql ``` 以上是 Docker 的基础知识介绍,Docker 还有很多高级功能和应用场景,例如 Docker Compose、Docker Swarm 和 Kubernetes 等。学习 Docker 可以让我们更好地理解容器化技术和云原生应用程序的开发和部署。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值