Linux——Shell脚本和Nginx反向代理服务器

1. Linux中的shell脚本【了解】

1.1 什么是shell

Shell是一个用C语言编写的程序,它是用户使用Linux的桥梁

Shell 既是一种命令语言,有是一种程序设计语言

Shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务

Ken Thompson 的 sh 是第一种 Unix Shell ,Windows Explorer 是一个典型的图形界面Shell

shell就是用户与linux交换的一款语言

1.2 后缀

.sh linux系统脚本的后缀

.bat windows系统脚本的后缀

1.3 编写第一个shell

#!/bin/bash
# echo 表示输出
echo "hello world"

#!/bin/bash 头文件

运行该脚本: ./路径/脚本名.sh

在这里插入图片描述

使用 ls -l命令可以查看该文件的权限

在这里插入图片描述

第一个字符:- :表示文件 d:表示目录 l:快捷方式

后面的字符三个为一组

rw-:这三个字符,表示当前创建文件的用户具有的权限

r–:这三个字符,表示当前创建该文件的用户所在的组成员具有的权限

r–:这三个字符,表示其他用户具有的权限

r:read 读 数字4

w:write 写 数字2

x:execute 执行 数字1

修改权限:

chmod u+rwx g+rwx o+rwx 文件名【增加权限】

chmod u-rwx g-rwx o-rwx 文件名【减权限】

我们也可以通过数字修改权限:chmod 735 文件

1.4 变量 弱语言

#!/bin/bash
name="lay"
echo "姓名:${name}"
echo "姓名:"${name}

1.5 Shell 传递参数

执行shell脚本时可以传递参数值

#!/bin/bash
name="lay"
echo "姓名:${name}"
echo "第一个参数值:$1"
echo "第二个参数值:$2"

执行脚本: ./脚本名 传递的参数值 值2

即使不传值也不会报错,没有下标越界的错误提示

1.6 Shell数组

数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与PHP相似)

与大部分编译语言类似,数组元素的下标由0开始

Shell数组用 括号来表示,元素用 空格符号分隔开,语法格式如下:

array_name=(value1 value2 .... valuen)

关联数组–map集合

Bash支持关联数组,可以使用任意的字符串、或者整数作为下标来访问数组元素

关联数组使用declare命令来声明,语法格式如下:

declare -A site=(["google"]="www.google.com" ["runoob"]="www.runoob.com" ["taobao"]="www.taobao.com")

-A 选项就是用于声明一个关联数组

关联数组的键是唯一的

1.7 Shell 基本运算符

算术运算符

原生Bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk和expr。expr最常用

expr 是一款表达式计算工具,使用它能完成表达式的求值操作。

例如,两个数相加(注意使用的是反引号 *`* 而不是单引号 *'*):

#!/bin/bash
a=100
b=20
c=`expr $a / $b`
echo "c==$c"

关系运算符

a=10
b=20
#
if [ $a -eq $b ]
thenecho "$a -eq $b : a 等于 b"
elseecho "$a -eq $b: a 不等于 b"
fi

等于:eq

不等于:ne

大于:gt

大于等于:ge

小于:lt

小于等于:le

布尔运算符

if [ $a -lt 100 -a $b -gt 15 ]
thenecho "$a 小于 100 且 $b 大于 15 : 返回 true"
elseecho "$a 小于 100 且 $b 大于 15 : 返回 false"
fi

if

then

else

fi:结束

1.8 控制语句

if语句 for语句

a=10
b=20
if [ $a -eq $b ]
thenecho "a 等于 b"
elif [ $a -gt $b ]
thenecho "a 大于 b"
elif [ $a -lt $b ]
thenecho "a 小于 b"
elseecho "没有符合的条件"
fi

for

for var in item1 item2 ... itemN
docommand1command2...commandN
done

2. Nginx反向代理服务器

2.1 什么是nginx

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。并发能力: 50,000 C语言编写的

2.2 为什么使用nginx

在这里插入图片描述

2.3 有哪些企业使用nginx

京东 淘宝 12306 新浪等

2.4 安装nginx

nginx可以独立安装在一台服务器,也可以和项目在同一个服务器

1. 安装nginx的依赖插件

yum  install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

下载nginx

源码:先编译——>后安装
下载地址:https://nginx.org/en/download.html

在这里插入图片描述

创建一个目录作为nginx的安装路径

mkdir /usr/nginx

将下载的nginx压缩包拖拽到/usr/app目录下

解压

tar -zxvf nginx-1.26.1.tar.gz

进入解压后的目录

cd nginx-1.26.1

指定nginx的安装路径

 ./configure --prefix=/usr/nginx

编译和安装nginx

make install

nginx目录结构

在这里插入图片描述

启动nginx

nginx  启动
nginx -s stop  关闭
nginx -s reload 重新加载配置文件

在这里插入图片描述

防火墙放行80端口

 firewall-cmd --add-port=80/tcp --zone=public --premanent

重启防火墙

 systemctl restart firewalld

访问nginx80

http://nginx所在的ip:nginx的端口/

在这里插入图片描述

2.5 nginx配置文件修改

切换到/usr/nginx/conf目录下,打开nginx.conf配置文件进行修改

#user  nobody; 
#工作的线程数
worker_processes  1;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {# 每个工作对象允许的连接数worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '#                  '$status $body_bytes_sent "$http_referer" '#                  '"$http_user_agent" "$http_x_forwarded_for"';#access_log  logs/access.log  main;sendfile        on;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;#模仿配置server {listen 81;server_name localhost;location /{root static;index main.html;}}#gzip  on;server {listen       80; # 监听的端口号server_name  localhost; # 监听的主机名.域名#charset koi8-r;#access_log  logs/host.access.log  main;# 资源/ location / {root   html; #根目录index  index.html main.html; # 资源}#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}# proxy the PHP scripts to Apache listening on 127.0.0.1:80##location ~ \.php$ {#    proxy_pass   http://127.0.0.1;#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000##location ~ \.php$ {#    root           html;#    fastcgi_pass   127.0.0.1:9000;#    fastcgi_index  index.php;#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;#    include        fastcgi_params;#}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one##location ~ /\.ht {#    deny  all;#}}# another virtual host using mix of IP-, name-, and port-based configuration##server {#    listen       8000;#    listen       somename:8080;#    server_name  somename  alias  another.alias;#    location / {#        root   html;#        index  index.html index.htm;#    }#}# HTTPS server##server {#    listen       443 ssl;#    server_name  localhost;#    ssl_certificate      cert.pem;#    ssl_certificate_key  cert.key;#    ssl_session_cache    shared:SSL:1m;#    ssl_session_timeout  5m;#    ssl_ciphers  HIGH:!aNULL:!MD5;#    ssl_prefer_server_ciphers  on;#    location / {#        root   html;#        index  index.html index.htm;#    }#}
}
#模仿配置server {listen 81;server_name localhost;location /{root static;index main.html;}}

listen:监听的端口号,需要防火墙放行该端口号

server_name: 监听的主机名.域名

location /{} :资源

location /{

​ root static; //根目录,需要在nginx中创建根目录static

​ index main.html; //资源,加载该资源

}

  • 重新加载
../sbin/nginx -s reload

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/47742.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PyTorch 深度学习实践-处理多维特征的输入

视频指路 参考博客笔记 参考笔记二 通过多个线性模型来模拟非线性的空间变换,矩阵计算就是不同维度之间的空间转换 说明:1、乘的权重(w)都一样,加的偏置(b)也一样。b变成矩阵时使用广播机制。神经网络的参数w和b是网络需要学习的&#xff0c…

MybatisPlusException: Error: Method queryTotal execution error of sql 的报错解决

项目场景: 相关背景: 开发环境 开发系统时 系统页面加载正常 ,发布运行环境后运行一段时间,前端页面 突然出现 报错信息, 报错信息如下: MybatisPlusException: Error: Method queryTotal execution erro…

如何在AWS上构建Apache DolphinScheduler

引言 随着云计算技术的发展,Amazon Web Services (AWS) 作为一个开放的平台,一直在帮助开发者更好的在云上构建和使用开源软件,同时也与开源社区紧密合作,推动开源项目的发展。 本文主要探讨2024年值得关注的一些开源软件及其在…

PDF转Word怎么快速转换?格式转换技巧分享

PDF文件和Word文档是我们日常工作中不可或缺的文件格式,同时文件之间的格式转换也十分常见。不同的格式有着不同的优点,将PDF文件改为Word文档后,在编辑或修改文件内容时更为方便。 下面小编就来给大家介绍几种常用的PDF转Word的转换方法&am…

Android 使用FFmpeg解析RTSP流,ANativeWindow渲染 使用SurfaceView播放流程详解

文章目录 ANativeWindow 介绍ANativeWindow 的主要功能和特点ANativeWindow 的常用函数工作流程原理图通过ANativeWindow渲染RGB纯色示例 播放RTSP流工作流程图关键步骤解析自定义SurfaceView组件native 层解码渲染 效果展示注意事项 这篇文章涉及到jni层,以及Ffmpe…

Linux-开机自动挂载(文件系统、交换空间)

准备磁盘 添加三块磁盘(两块SATA,一块NVMe) 查看设备: [rootlocalhost jian]# ll /dev/sd* [rootlocalhost jian]# ll /dev/nvme0n2 扩:查看当前主机上的所有块设备,通过如下指令实现: [root…

基于语音识别的会议记录系统

文章目录 核心功能页面展示使用技术方案功能结构设计数据库表展示 核心功能页面展示 视频展示功能 1.创建会议 在开始会议之前需要管理员先创建一个会议,为了能够快速开始会议,仅需填写会议的名称、会议举办小组、会议背景等简要会议信息即可成功创建。…

c# .net core中间件,生命周期

某些模块和处理程序具有存储在 Web.config 中的配置选项。但是在 ASP.NET Core 中,使用新配置模型取代了 Web.config。 HTTP 模块和处理程序如何工作 官网地址: 将 HTTP 处理程序和模块迁移到 ASP.NET Core 中间件 | Microsoft Learn 处理程序是&#xf…

【iOS】——内存分区

内存管理 程序运行的过程中往往会涉及到创建对象、定义变量、调用函数或方法,而这些行为都会增加程序的内存占用。为了防止内存占用过多影响到程序的正常运行就需要对内存进行管理。 移动端的内存管理机制,主要有三种: 自动垃圾收集(GC)手…

两台电脑之间如何进行数据传输?两台电脑数据传输攻略

在数字化时代,电脑之间的数据传输变得日益重要。无论是个人用户还是企业用户,经常需要在不同的电脑之间共享或迁移数据。那么,两台电脑之间如何进行数据传输呢?本文将详细介绍两台电脑之间进行数据传输的几种常见方法,…

CI/CD的node.js编译报错npm ERR! network request to https://registry.npmjs.org/

1、背景: 在维护paas云平台过程中,有研发反馈paas云平台上的CI/CD的前端流水线执行异常。 2、问题描述: 流水线执行的是前端编译,使用的是node.js环境。报错内容如下: 2024-07-18T01:23:04.203585287Z npm ERR! code E…

【BUG】已解决:note: This is an issue with the package mentioned above,not pip.

已解决:note: This is an issue with the package mentioned above,not pip. 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页,我是博主英杰,211科班出身,就职于医疗科技公司,热衷…

Pytorch基础应用

1.数据加载 1.1 读取文本文件 方法一:使用 open() 函数和 read() 方法 # 打开文件并读取全部内容 file_path example.txt # 替换为你的文件路径 with open(file_path, r) as file:content file.read()print(content)方法二:逐行读取文件内容 # 逐…

【 FPGA 线下免费体验馆】高端 AMD- xilinx 16 nm UltraScale +系列

在复杂的FPGA 开发的过程中,需要能够满足高速、高精度、多通道等的复杂应用。而一个简单的 FPGA 开发板是不具备这些的,因此需要用更高端,大容量,高速IO的 FPGA 芯片与其他硬件组成一个完整的系统开发。这里就产生了高端 FPGA 开发…

redis服务器同 redis 集群

搭建redis服务器 修改服务运行参数 常用命令常用命令 创建redis集群 准备做集群的主机,不允许存储数据、不允许设置连接密码 配置服务器: 1、在任意一台redis服务器上都可以执行创建集群的命令。 2、--cluster-replicas 1 给每个master服务器分配1台…

【go】Excelize处理excel表 带合并单元格、自动换行与固定列宽的文件导出

文章目录 1 简介2 相关需求与实现2.1 导出带单元格合并的excel文件2.2 导出增加自动换行和固定列宽的excel文件 1 简介 之前整理过使用Excelize导出原始excel文件与增加数据校验的excel导出。【go】Excelize处理excel表 带数据校验的文件导出 本文整理使用Excelize导出带单元…

汇编教程1

本教程主要教大家如何使用vscode插件编写汇编语言,这样更方便,不用在32位虚拟机中编写汇编语言,后续的汇编实验代码都是使用vscode编写,话不多说,开始教学 安装vscode 如果已经安装过vscode,可以跳过这一…

Python创建Excel表和读取Excel表的基础操作

下载openpyxl第三方库 winr打开命令行输入cmd 这个如果不行可以试试其他方法,在运行Python代码的软件里也有直接下载的地方,可以上网搜索 创建Excel表 示例代码:最后要记得保存,可以加一句提示语句。 import openpyxl lst[100,…

【Apache Doris】周FAQ集锦:第 16 期

【Apache Doris】周FAQ集锦:第 16 期 SQL问题数据操作问题运维常见问题其它问题关于社区 欢迎查阅本周的 Apache Doris 社区 FAQ 栏目! 在这个栏目中,每周将筛选社区反馈的热门问题和话题,重点回答并进行深入探讨。旨在为广大用户…

简单工厂、工厂方法与抽象工厂之间的区别

简单工厂、工厂方法与抽象工厂之间的区别 1、简单工厂(Simple Factory)1.1 定义1.2 特点1.3 示例场景 2、工厂方法(Factory Method)2.1 定义2.2 特点2.3 示例场景 3、抽象工厂(Abstract Factory)3.1 定义3.…