麒麟操作系统服务架构保姆级教程(四)NGINX中间件
如果你想拥有你从未拥有过的东西,那么你必须去做你从未做过的事情
想要在网页上访问到代码那么就需要用到应用服务类中间件,国外的有Nginx,Tomcat等,国内的有金蝶web,东方通的服务中间件(Tongweb)等等,今天就来介绍和安装一下Nginx~~~~
目录
一、查询我的公网出网IP
二、服务架构框架
三、Nginx服务安装
发现无法访问页面???
关闭防火墙
四、Nginx服务管理
五、部署一个好看的前端界面
💬欢迎交流:在学习过程中如果你有任何疑问或想法,欢迎在评论区留言,我们可以共同探讨学习的内容。你的支持是我持续创作的动力!
👍点赞、收藏与推荐:如果你觉得这篇文章对你有所帮助,请不要忘记点赞、收藏,并分享给更多的小伙伴!你们的鼓励是我不断进步的源泉!
🚀推广给更多人:如果你认为这篇文章对你有帮助,欢迎分享给更多对Linux感兴趣的朋友,让我们一起进步,共同提升!
一、查询我的公网出网IP
[root@web01 heavenly-music-master]#curl cip.cc
IP : ***.**.**.***
地址 : 中国 北京
运营商 : 联通
数据二 : 中国北京北京 | 联通
数据三 : 中国北京北京市 | 联通
URL : http://www.cip.cc/ ***.**.**.***
[root@web01 heavenly-music-master]#
我们公司的出网IP我不方便透露,你们自己试试吧~~~~
二、服务架构框架
LNMP架构Linxu Nginx MySQL PHP
LNMT架构Linxu Nginx MySQL Tomcat
LAMP架构Linxu Apache MySQL PHP
LNMP架构Linxu Nginx MySQL Python
三、Nginx服务安装
方法1.编译安装
方法2.epel安装,版本较低,配置不易读,不建议使用默认为1.20
方法3.通过官网仓库安装
通过官网编译安装nginx(1.26版本)
下载网址
https://nginx.org/en/download.html
也可以使用wget命令
[root@web01 code]#wget https://nginx.org/download/nginx-1.26.2.tar.gz

[root@web01 ~]#ls
公共 视频 文档 音乐 anaconda-ks.cfg initial-setup-ks.cfg
模板 图片 下载 桌面 heavenly-music-master.zip nginx-1.26.2.tar.gz
新建目录
[root@web01 ~]#mkdir /usr/local/web-tool
将解压好的包移动到刚刚新建的目录下并改名
[root@web01 ~]#mv nginx-1.26.2 /usr/local/web-tool/nginx
进入目录
[root@web01 ~]#cd /usr/local/web-tool/nginx
[root@web01 nginx]#ls
auto CHANGES CHANGES.ru conf configure contrib html LICENSE man README src
检查与编译
[root@web01 nginx]#./configure
checking for OS+ Linux 4.19.90-52.15.v2207.ky10.x86_64 x86_64
checking for C compiler ... found+ using GNU C compiler+ gcc version: 7.3.0 (GCC)
……
creating objs/Makefile
Configuration summary+ using system PCRE2 library+ OpenSSL library is not used+ using system zlib library
nginx path prefix: "/usr/local/nginx"nginx binary file: "/usr/local/nginx/sbin/nginx"nginx modules path: "/usr/local/nginx/modules"nginx configuration prefix: "/usr/local/nginx/conf"nginx configuration file: "/usr/local/nginx/conf/nginx.conf"nginx pid file: "/usr/local/nginx/logs/nginx.pid"nginx error log file: "/usr/local/nginx/logs/error.log"nginx http access log file: "/usr/local/nginx/logs/access.log"nginx http client request body temporary files: "client_body_temp"nginx http proxy temporary files: "proxy_temp"nginx http fastcgi temporary files: "fastcgi_temp"nginx http uwsgi temporary files: "uwsgi_temp"nginx http scgi temporary files: "scgi_temp"安装编译
[root@web01 nginx]#make
make -f objs/Makefile
make[1]: 进入目录“/usr/local/web-tool/nginx”
cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -I src/core -I src/event -I src/event/modules -I src/event/quic -I src/os/unix -I objs \-o objs/src/core/nginx.o \src/core/nginx.c
cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -I src/core -I src/event -I src/event/modules -I src/event/quic -I src/os/unix -I objs \-o objs/src/core/ngx_log.o \src/core/ngx_log.c
cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -I src/core -I src/event -I src/event/modules -I src/event/quic -I src/os/unix -I objs \-o objs/src/core/ngx_palloc.o \src/core/ngx_palloc.c
……
[root@web01 nginx]#sudo make install
make -f objs/Makefile install
make[1]: 进入目录“/usr/local/web-tool/nginx”
test -d '/usr/local/nginx' || mkdir -p '/usr/local/nginx'
test -d '/usr/local/nginx/sbin' \|| mkdir -p '/usr/local/nginx/sbin'
test ! -f '/usr/local/nginx/sbin/nginx' \|| mv '/usr/local/nginx/sbin/nginx' \'/usr/local/nginx/sbin/nginx.old'
cp objs/nginx '/usr/local/nginx/sbin/nginx'
test -d '/usr/local/nginx/conf' \|| mkdir -p '/usr/local/nginx/conf'
cp conf/koi-win '/usr/local/nginx/conf'
cp conf/koi-utf '/usr/local/nginx/conf'
cp conf/win-utf '/usr/local/nginx/conf'
test -f '/usr/local/nginx/conf/mime.types' \|| cp conf/mime.types '/usr/local/nginx/conf'
cp conf/mime.types '/usr/local/nginx/conf/mime.types.default'
test -f '/usr/local/nginx/conf/fastcgi_params' \|| cp conf/fastcgi_params '/usr/local/nginx/conf'
启动nginx查看是否安装成功
[root@web01 nginx]#/usr/local/nginx/sbin/nginx
进入浏览器输入IP+端口(端口默认80)
发现无法访问页面???

关闭防火墙
contos7以后系统默认使用fairewalld防火墙,不需要默认关闭iptables
但是银河麒麟是两种防火墙同时使用的,小屁最早陷入了思维误区,一直没想到iptables的问题,经原厂工程师的提醒关闭iptables防火墙就可以访问啦!!!
关闭两道防火墙之后记得关闭开机自启呦~~~~
[root@web01 nginx]#systemctl stop firewalld.service
[root@web01 nginx]#systemctl stop iptables
[root@web01 nginx]#systemctl disable firewalld.service
[root@web01 nginx]#systemctl disable iptables
当然在生产环境不建议这么玩(可以学习一下防火墙开口的策略)

四、Nginx服务管理
[root@web01 nginx]#cat nginx.conf
# 核心区块
user nginx; # 启动nginx的虚拟用户 默认已经存在了
worker_processes auto; # 启动子进程的数量 auto以cpu的内核数为准
error_log /var/log/nginx/error.log notice; # 错误日志所在的日志
pid /var/run/nginx.pid; # 进程PID所存放的目录
# 事件模块
events {worker_connections 25532; # 进程的最大连接数
}# http模块
http {
include /etc/nginx/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 /var/log/nginx/access.log main; # nginx的访问日志
sendfile on; #文件高效传参
#tcp_nopush on;
keepalive_timeout 65; #长连接的超时时间
#gzip on; #是否开启压缩
include /etc/nginx/conf.d/*.conf; # 包含了conf.d目录下所有的.conf 将*.conf内容移动到了当前的文件中
}
主机配置文件:
[root@web01 conf.d]#nginx.conf
#可以放在最后倒数第二行
server {listen 80;server_name www.game.com;location / {root /code/;index index.html index.htm;}
# 包含了conf.d目录下所有的.conf 将*.conf内容移动到了当前的
}
修改完成之后使用nginx -t检查语法
[root@web01 ~]#/usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
重载nginx(可以重启,但是不建议那么做,重载是热加载,重启是关闭之后再启动)
/usr/local/nginx/sbin/nginx -s reload
查看nginx版本
[root@web01 ~]#/usr/local/nginx/sbin/nginx -v
nginx version: nginx/1.26.2
第五步:检查服务端口是否开启
[root@web01 conf.d]#netstat -tnulp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address
tcp 0 0 0.0.0.0:80 0.0.0.0:*
Nginx启动方式:两种启动方式(编译安装需要自己写脚本,我写了但是有点问题等写好再粘过来)
systemctl start nginx #systemctl启动进程
systemctl stop nginx #停止进程
第二种:没有被systemctl所管理:使用绝对路径运行
#启动脚本是在
# /usr/local/nginx/sbin/nginx
#启动,
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
#停止
/usr/local/nginx/sbin/nginx -s stop
#重载
/usr/local/nginx/sbin/nginx -s reload
#杀掉nginx
/usr/local/nginx/sbin/nginx -s quit
[root@web01 ~]#/usr/local/nginx/sbin/nginx
[root@web01 ~]#netstat -tnulp|grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 22956/nginx: master
五、部署一个好看的前端界面
[root@web01 ~]#vim /usr/local/nginx/conf/nginx.conf
#倒数第二行写入下面的内容
……
#}server {listen 81;#server_name www.game.com;location / {root /code/heavenly-music-master;index index.html index.htm;}
# 包含了conf.d目录下所有的.conf 将*.conf内容移动到了当前的 }
#注意要放到最后一行花括号“}”里
}
下载代码
https://gitee.com/ymhkali/heavenly-music/repository/archive/master.zip
我下载到了/root目录下
[root@web01 ~]#ls
公共 视频 文档 音乐 anaconda-ks.cfg initial-setup-ks.cfg
模板 图片 下载 桌面 heavenly-music-master.zip nginx-1.26.2.tar.gz
解压代码包
[root@web01 code]#unzip /root/heavenly-music-master.zip -d /code/
Archive: /root/heavenly-music-master.zip
bc49cdda7c39e0c2224655e28ccb5d74a068259dcreating: /code/heavenly-music-master/creating: /code/heavenly-music-master/CSS/inflating: /code/heavenly-music-master/CSS/album.css inflating: /code/heavenly-music-master/CSS/index.css inflating: /code/heavenly-music-master/CSS/my_music.css inflating: /code/heavenly-music-master/CSS/play.css inflating: /code/heavenly-music-master/CSS/playlist_detail.css
……inflating: /code/heavenly-music-master/images/音乐小图标1.png inflating: /code/heavenly-music-master/images/音乐背景.jpg inflating: /code/heavenly-music-master/images/音乐背景图片.jpg inflating: /code/heavenly-music-master/index.html
[root@web01 code]#ls
heavenly-music-master
[root@web01 code]#cd heavenly-music-master/
[root@web01 heavenly-music-master]#ls
CSS Files images index.html JS LICENSE README.md
重载
[root@web01 code]#/usr/local/nginx/sbin/nginx -s reload

今天对nginx的编译安装和服务部署讲解就告一段落了,下次分享一点深入的nginx知识~~~~
我的nginx安装参考了这位作者,可以去看一看他的博客:麒麟系统—— openKylin 安装 Nginx_麒麟系统安装nginx-CSDN博客
想成为大佬,就要从小白开始,从0开始,一点一点的积累,慢慢成长,明天你就是大佬!!想学习更多麒麟操作系统的知识,关注小屁,让你成为运维老鸟~~~~~
相关文章:
麒麟操作系统服务架构保姆级教程(四)NGINX中间件
如果你想拥有你从未拥有过的东西,那么你必须去做你从未做过的事情 想要在网页上访问到代码那么就需要用到应用服务类中间件,国外的有Nginx,Tomcat等,国内的有金蝶web,东方通的服务中间件(Tongweb࿰…...
Glide 自定义圆角、铺满FitXY
在 Android 开发中,使用 Glide 来加载图片时,有时需要对图片进行特定的处理,比如设置圆角或者使图片完全填充到一个视图中(类似于 ImageView 的 scaleType 中的 FitXY)。以下是如何使用 Glide 来实现这些自定义需求的处…...
蓝牙协议——音乐启停控制
手机播放音乐 手机暂停音乐 耳机播放音乐 耳机暂停音乐...
Krita安装krita-ai-diffusion工具搭建comfyui报错没有ComfyUI_IPAdapter_plus解决办法
我们在使用Kirta安装krita-ai-diffusion工具之后搭建comfyui环境需要安装很多扩展文件。 一般正常安装都可以使用了。 但是有一个插件很特别,无论你安装多少遍都会显示缺失,是什么插件这么难搞定呢? 没错,就是我们的ComfyUI_IPAdapter_plus插件。 就像下图一样: 那么怎…...
四相机设计实现全向视觉感知的开源空中机器人无人机
开源空中机器人 基于深度学习的OmniNxt全向视觉算法OAK-4p-New 全景硬件同步相机 机器人的纯视觉避障定位建图一直是个难题: 系统实现复杂 纯视觉稳定性不高 很难选到实用的视觉传感器 为此多数厂家还是采用激光雷达的定位方案。 OAK-4p-New 为了弥合这一差距…...
LightGBM分类算法在医疗数据挖掘中的深度探索与应用创新(上)
一、引言 1.1 医疗数据挖掘的重要性与挑战 在当今数字化医疗时代,医疗数据呈爆炸式增长,这些数据蕴含着丰富的信息,对医疗决策具有极为重要的意义。通过对医疗数据的深入挖掘,可以发现潜在的疾病模式、治疗效果关联以及患者的健康风险因素,从而为精准医疗、个性化治疗方…...
JVM(Java虚拟机)的组成部分详解
摘要: JVM (Java Virtual Machine) 是一个抽象计算模型,它使Java程序可以在任何支持JVM的操作系统上运行,而无需考虑底层硬件架构。本文将深入探讨JVM的内部结构和工作机制,包括类加载器、运行时数据区、执行引擎以及内存管理等关…...
jsp中的四个域对象(Spring MVC)
在Spring MVC中,Model中的数据会被自动放入到请求域(Request Scope)中。也就是说,当我们在控制器中使用model.addAttribute()时,这些属性会被放入到HttpServletRequest对象的属性中。 让我们通过代码来详细解释&#…...
计算机基础知识复习12.24
http和https有那些区别 http是超文本传输协议,信息是明文传输,存在安全风险的问题,https则解决http不安全的缺点,在TCP和HTTP网络层之间加入了SSL/TLS安全协议,使得报文能够加密传输 http连接建立相对简单࿰…...
如何使用vscode解决git冲突
在使用VSCode时,遇到Git冲突是很常见的情况。Git冲突是指当多个人同时修改同一个文件的同一行或相邻行时,Git无法自动决定应该保留哪一个修改,需要手动解决这个冲突。 要解决Git冲突,可以按照以下步骤操作: 1. 打开V…...
告别卡顿:CasaOS轻NAS设备安装Gopeed打造高效下载环境
文章目录 前言1. 更新应用中心2.Gopeed安装与配置3. 本地下载测试4. 安装内网穿透工具5. 配置公网地址6. 配置固定公网地址 前言 无论你是需要大量文件传输的专业人士,还是只是想快速下载电影或音乐的普通用户,都会使用到下载工具。如果你对现有的下载工…...
Java 重写(Override)与重载(Overload)
重写 (Override) 重写是子类对父类的允许访问的方法的实现过程进行重新编写!返回值和形参都不能改变。即外壳不变,核心重写! 重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。…...
HDFS与HBase有什么关系?
1 、 HDFS 文件存储系统和 HBase 分布式数据库 HDFS 是 Hadoop 分布式文件系统。 HBase 的数据通常存储在 HDFS 上。 HDFS 为 HBase 提供了高可靠性的底层存储支持。 Hbase 是 Hadoop database ,即 Hadoop 数据库。它是一个适合于非结构化数据存储的数据库, HBase 基于列的…...
CentOS7下的vsftpd服务器和客户端
目录 1、安装vsftpd服务器和ftp客户端; 2、配置vsftpd服务器,允许普通用户登录、下载、上传文件; 3、配置vsftpd服务器,允许anonymous用户登录、下载、上传文件; 4、配置vsftpd服务器,允许root用户登录…...
全网最详细Gradio教程系列10——Blocks:底层区块类(下)
全网最详细Gradio教程系列10——Blocks:底层区块类(下) 前言本篇摘要10. Blocks:底层区块类10.4 Blocks Layout:布局10.4.1 行与列1. Rows2. Columns 10.4.2 选项卡和折叠类10.4.3 重渲染.render()10.4.4 Group分组10.…...
嵌入式设备常用性能和内存调试指令
文章目录 嵌入式设备常用性能和内存调试指令内存问题分析性能测试android设备通过NDK 使用SimplePerf 抓取火焰图嵌入式linux抓取特定进程的perf火焰图 杂记 嵌入式设备常用性能和内存调试指令 内存问题分析 安装valgrind,按照如下指令执行应用程序: …...
数据库系统原理:数据恢复与备份策略
3.1可行性分析 开发者在进行开发系统之前,都需要进行可行性分析,保证该系统能够被成功开发出来。 3.1.1技术可行性 开发该《数据库系统原理》课程平台所采用的技术是vue和MYSQL数据库。计算机专业的学生在学校期间已经比较系统的学习了很多编程方面的知识…...
C++软件设计模式之装饰器模式
装饰器模式(Decorator Pattern)是C软件设计模式中的一种结构型设计模式,主要用于解决在不改变现有对象结构的情况下动态地给对象添加新功能的问题。通过使用装饰器模式,可以在运行时为对象添加新的行为,而不需要修改其…...
fpga系列 HDL:Quartus II PLL (Phase-Locked Loop) IP核 (Quartus II 18.0)
在 Quartus II 中使用 PLL (Phase-Locked Loop) 模块来将输入时钟分频或倍频,并生成多个相位偏移或频率不同的时钟信号: 1. 生成 PLL 模块 在 Quartus II 中: 打开 IP Components。 file:///C:/intelFPGA_lite/18.0/quartus/common/help/w…...
Spring AOP 中记录日志
Spring AOP 中记录日志 使用 AOP 和 Spring 提供的 RequestContextHolder 在通知中记录 HTTP 请求相关日志。以下是进阶添加日志功能的完整例子和说明。 完整示例 1. 切面类实现 Aspect Component public class LogAspect {Around("annotation(log)") // 拦截所有…...
C++实现分布式网络通信框架RPC(3)--rpc调用端
目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...
基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...
【VLNs篇】07:NavRL—在动态环境中学习安全飞行
项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...
【Linux】Linux 系统默认的目录及作用说明
博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...
用鸿蒙HarmonyOS5实现中国象棋小游戏的过程
下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...
使用SSE解决获取状态不一致问题
使用SSE解决获取状态不一致问题 1. 问题描述2. SSE介绍2.1 SSE 的工作原理2.2 SSE 的事件格式规范2.3 SSE与其他技术对比2.4 SSE 的优缺点 3. 实战代码 1. 问题描述 目前做的一个功能是上传多个文件,这个上传文件是整体功能的一部分,文件在上传的过程中…...
软件工程 期末复习
瀑布模型:计划 螺旋模型:风险低 原型模型: 用户反馈 喷泉模型:代码复用 高内聚 低耦合:模块内部功能紧密 模块之间依赖程度小 高内聚:指的是一个模块内部的功能应该紧密相关。换句话说,一个模块应当只实现单一的功能…...
