当前位置: 首页 > news >正文

服务器技术(三)--Nginx

Nginx介绍

Nginx是什么、适用场景

Nginx是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。
Nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率,能经受高负载的考验,有报告表明能支持高达50,000个并发连接数。

  • HTTP的反向代理服务器

    • 正向代理在这里插入图片描述 正向代理是在我们的客户端和服务器之间加了一个代理服务器。客户端把信息传到代理服务器上,代理服务器代替客户端,把请求信息转发,如百度、银行、文件服务等,然后把结果返回给客户端。
      代理服务器的作用为提供安全功能,还可以隐藏客户端自身的信息。
    • 反向代理
      在这里插入图片描述
      反向代理是为服务端开发的。反向代理是指客户端访问的时候,不直接访问所要请求的服务器,而是在多个服务器之前统一加一个代理服务器。
      反向代理服务器,可以隐藏服务器信息。它除了提供安全功能之外,还有一个重要的功能就是后端多个服务器之间提供负载均衡,或者对比较慢的服务器提供缓存。
      在这里插入图片描述
    • 正向+反向代理
      **加粗样式**
  • 负载均衡
    单个服务器解决不了,我们增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡。
    在这里插入图片描述

  • 动静分离(动态静态资源分离)
    为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度,降低原来单个服务器的压力。
    在这里插入图片描述

    • 不分离会变慢
      像css、js、图片等静态资源其实没有必要由后端服务器去提供的,因为经过服务器去处理之后,速度会被延缓。
    • 静态资源无需经过Tomcat,Tomcat只负责处理动态请求。
    • 后缀为gif的时候,Nginx会直接获取到当前请求的文件并返回。
    • Nginx本身也是静态资源服务器,比如开发的网站只有静态资源的时候,如个人主页、博客、公司简要介绍等,可以时候Nginx当服务器,并且Nginx性能也是非常不错的。

Nginx的优点

在这里插入图片描述

  • 高并发、高性能
    以主流服务器配置(如32G或64G服务器),使用Nginx可以轻松达到千万级别的并发连接。
  • 可扩展性好
    Nginx的可扩展性主要体现在模块化设计,模块化设计非常的稳定,使得Nginx的第三方模块生态圈非常丰富。
  • 高可靠性
    Nginx在服务器上不间断运行长达数年之久。
  • 热部署
    在不停止服务的情况下可以升级Nginx。
  • 开源、可商用
    Nginx有BSD许可证,可开源免费使用。

Nginx的安装

这里记录的是使用yum命令,如果手动安装,需要先安装prre.tar.gz 、openssl.tar.gz、 zlib.tar.gz等依赖,再安装nginx.tar.gz,这里不再赘述。

  • Linux的安装
    按装依赖yum-utils,执行命令yum install yum-utils
    在这里插入图片描述
    执行vim /etc/yum.repos.d/nginx.repo输入源信息
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/7/@basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

执行yum list | grep nginx查看稳定版的源
在这里插入图片描述
然后选择稳定版运行yum install nginx安装(出现询问输入y)
在这里插入图片描述
在这里插入图片描述
输入nginx -v或whereis nginx验证是否安装成功
在这里插入图片描述

  • Mac OS的安装
    通过工具brew安装
    brew install nginx

  • Windows不推荐安装

    • 功能和Linux不完全一样
    • 和实际生产相差很大

Nginx的常用命令

  • /usr/sbin/nginx启动
    启动后有三种验证已启动的方法
    • 重新执行启动命令,会提示端口已被使用
      在这里插入图片描述

    • 执行ps -aux | grep nginx查看nginx相关进程
      在这里插入图片描述

    • 通过浏览器看看能不能访问到(注:如果访问失败,可能是端口没放开,开放端口请参考服务器技术(二)–Linux进阶应用(2)–Linux用户与权限及CentOS7防火墙firewall)
      在这里插入图片描述

  • nginx -h 帮助
    在这里插入图片描述
  • nginx -c 读取指定配置文件
    先执行nginx -s stop停止nginx
    然后执行nginx -c /etc/nginx/nginx.conf按指定配置文件启动
    在这里插入图片描述
  • nginx -t 查看并测试配置文件是否正确
    在这里插入图片描述
  • nginx -v 、nginx -V 版本
    在这里插入图片描述
  • 找到正在运行的nginx的路径whereis nginx
    在这里插入图片描述
  • ps aux | grep nginx 查看nginx进程信息
    在这里插入图片描述
  • nginx -s 信号
    • stop 立即停止
    • quit 优雅停止
    • reload 重启
      先检查新的配置文件语法有效性,如果不通则不会重启,如果语法没问题,启动一个新的进程,直到旧的进程把拥有的任务处理完毕之后让旧的进程退出
    • reopen 更换日志文件

Nginx配置文件

  • 配置文件语法
    • ;结尾
    • {}组织多条指令
    • include 引入
    • # 注释
    • $ 变量
  • 默认配置文件
    • nginx.conf
      /etc/nginx/nginx.conf
## 全局块:从配置文件开始到events块之间的内容,主要设置一些影响整体运行的配置指令
# 运行用户,默认是nginx
user  nginx;
# nginx进程数,一般默认为何cpu核数一样
worker_processes  auto;# 全局错误日志路径
error_log  /var/log/nginx/error.log notice;
# 进程pid路径
pid        /var/run/nginx.pid;## events块:涉及的指令主要影响Nginx服务器与用户的网络连接
events {# 最大连接数worker_connections  1024;
}## http块,包括http全局块和server块,Nginx服务器配置中最频繁的部分
#设置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;# 开启高效传输模式sendfile        on;#tcp_nopush     on;# 长链接超时时间,单位秒keepalive_timeout  65;# 传输的时候是否需要压缩#gzip  on;# 加载其他配置文件include /etc/nginx/conf.d/*.conf;
}
default.conf
/etc/nginx/conf.d/default.conf
## server块,包括全局server块和location块,这块和虚拟主机有密切关系
server {# 端口号listen       80;#服务器名称server_name  localhost;#access_log  /var/log/nginx/host.access.log  main;# 默认情况下/代表的路径location / {# 默认转发的路径root   /usr/share/nginx/html;# 默认主页index  index.html index.htm;}#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   /usr/share/nginx/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;#}
}

所以只要在/usr/share/nginx/html路径下的文件都可以访问打开。

搭建静态资源服务器

通过文件上传工具,如SecureFX上传测试项目到/usr/share/nginx/web目录下
在这里插入图片描述
在这里插入图片描述
修改文件/etc/nginx/conf.d/default.conf的location
在这里插入图片描述
然后重启nginx浏览器访问
在这里插入图片描述
可以打开/var/log/nginx/access.log查看日志
在这里插入图片描述

Nginx配置实例-反向代理

  • 实现效果

    • 打开浏览器,在浏览器地址栏输入地址www.123.com,跳转到linux系统tomcat主页面中
  • 准备工作

    • 在linux系统安装tomcat,使用默认端口8080,安装步骤参考服务器技术(二)–Linux进阶应用(2)–Linux用户与权限及CentOS7防火墙firewall
  • 访问过程的分析
    在这里插入图片描述

  • 具体配置

    • 第一步 在windows系统的host文件进行域名和ip对应关系的配置,这边直接用 SwitchHosts工具配置
      在这里插入图片描述
    • 第二步 在nginx进行请求转发的配置(反向代理配置)
      修改配置文件/etc/nginx/conf.d/default.conf
      在这里插入图片描述
      然后nginx -c /etc/nginx/nginx.conf启动nginx,浏览器访问www.123.com
      在这里插入图片描述

Nginx配置实例-反向代理实例2

  • 实现效果
    使用nginx反向代理,根据访问的路径跳转到不同端口的服务器中
    nginx监听端口为9001
    访问 http://127.0.0.1:9001/edu/ 直接跳转到127.0.0.1:8080
    访问 http://127.0.0.1:9001/vod/ 直接跳转到127.0.0.1:8081

  • 准备工作

    • 准备两个tomcat服务器,一个8080端口,一个8081端口,方法是再复制一套tomcat再把server.xml配置文件的端口改掉就行
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
    • 创建文件夹和测试页面
      在这里插入图片描述
      在这里插入图片描述
  • 具体配置

    • 找到nginx配置文件,进行反向代理配置
      在这里插入图片描述
      location后的~用于表示uri包含正则表达式,并且区分大小写。如果为~*不区分大小写。
  • 启动nginx后测试
    在这里插入图片描述
    在这里插入图片描述

Nginx配置实例-负载均衡

  • 实现效果
    • 浏览器地址栏输入http://192.168.1.128/edu/a.html,负载均衡效果,平均8080和8081端口中
  • 准备工作
    • 准备两台tomcat服务器,一台8080,一台8081
    • 在两台tomcat里面webapps目录中,创建名称是edu文件夹,在edu文件夹中创建页面a.html,用于测试
  • 在nginx的配置文件中进行负载均衡的配置
    在这里插入图片描述
    在这里插入图片描述
  • 启动nginx后测试
    在这里插入图片描述
    在这里插入图片描述

Nginx分配服务器策略

  • 轮询(默认)
    每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
  • weight
    weight代表权重默认为1,权重越高被分配的客户端越多。
  • ip_hash
    每个请求按访问ip的hash结果分配,这样每个访问固定访问一个后端服务器
  • fair
    按后端服务器的响应时间来分配请求,响应时间短的优先分配。

Nginx配置实例-动静分离

  • 什么是动静分离
    在这里插入图片描述
    通过 location 指定不同的后缀名实现不同的请求转发。通过 expires 参数设置,可以使浏览器缓存过期时间,减少与服务器之前的请求和流量。具体 Expires 定义:是给一个资源设定一个过期时间,也就是说无需去服务端验证,直接通过浏览器自身确认是否过期即可,所以不会产生额外的流量。此种方法非常适合不经常变动的资源。(如果经常更新的文件,不建议使用 Expires 来缓存),我这里设置 3d,表示在这 3 天之内访问这个 URL,发送一个请求,比对服务器该文件最后更新时间没有变化,则不会从服务器抓取,返回状态码 304,如果有修改,则直接从服务器重新下载,返回状态码 200。

  • 准备工作

    • 在 Linux 系统中准备静态资源,用于进行访问
      在这里插入图片描述
  • 具体配置

    • 在 nginx 配置文件中进行配置
      在这里插入图片描述
  • 最终测试
    在这里插入图片描述
    在这里插入图片描述

Nginx配置高可用的集群

  • 什么是nginx高可用
    在这里插入图片描述
    • 需要两台nginx服务器
    • 需要keepalived
    • 需要虚拟ip
  • 配置高可用的准备工作
    • 需要两台服务器(可以克隆虚拟机)
    • 在两台服务器安装nginx
    • 在两台服务器安装keepalived
      使用 yum 命令进行安装
      yum install keepalived -y
  • 完成高可用配置(主从配置)
    • 修改/etc/keepalived/keepalived.conf配置文件
# 全局配置
global_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 192.168.1.129smtp_connect_timeout 30router_id LVS_DEVEL # 访问到主机
}
# 脚本配置
vrrp_script chk_http_port {script "/usr/local/src/nginx_check.sh"interval 2  #检测脚本执行的间隔weight 2 # 权重
}
# 虚拟IP配置
vrrp_instance VI_1 {state BACKUP  # 备份服务器将 MASTER 改为 BACKUPinterface ens33 # 网卡virtual_router_id 51  # 主、备机的 virtual_router_id 必须相同priority 90  # 主、 备机取不同的优先级,主机值较大,备机值较小advert_int 1 # 每隔多长时间发送心跳,检测服务器是否活着authentication { # 权限校验方式 PASS为密码 auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.1.120  # VRRP H虚拟地址}
}
  • 在/usr/local/src添加检测脚本nginx_check.sh
#!/bin/bash
A=`ps -C nginx -no-header |wc -l`
if [ $A -eq 0 ]; then/usr/sbin/nginxsleep 2if [ `ps -C nginx --no-header |wc -l` -eq 0 ];thenkillall keepalivedfi
fi
  • 把两台服务器上nginx和keepalived启动
    启动nginx: nginx -c /etc/nginx/nginx.conf
    启动keepalived: systemctl start keepalived.service
  • 最终测试
    • 在浏览器地址栏中输入 虚拟ip地址:192.168.1.120
      在这里插入图片描述
      可以输入ip a查看绑定的虚拟ip
      在这里插入图片描述
    • 把主服务器 nginx 和 keepalived 停止,再输入虚拟地址访问,依然正常显示。
      systemctl stop keepalived.service
      nginx -s stop
      在这里插入图片描述

Nginx原理

  • master 和 worker
    在这里插入图片描述
    在这里插入图片描述

  • worker 如何进行工作的
    在这里插入图片描述

  • 一个 master 和多个 worker 的好处

    • 可以使用 nginx -s reload 热部署
    • 每个 worker 是独立的进程,如果其中一个 worker 出现问题,其他 worker 独立的继续进行争抢,实现请求过程不会造成服务中断。
  • 设置多少个worker合适
    worker 数和服务器的 cpu 数相等是最为事宜的。

  • 连接数 worker_connection

    • 发送请求,占用了 worker 的几个连接数?
      2 或 4 个
    • nginx 有一个 master,有四个 worker ,每个 worker 支持最大的连接数为1024 , 支持的最大并发数是多少?
      普通的静态访问最大并发数是: worker_connection * worker_processes / 2,也就是1024 * 4 / 2 = 2048。
      而如果是 HTTP 作为反向代理来说,最大并发连接数应该是 worker_connection * worker_processes / 4,也就是1024 * 4 / 4 = 1024。

相关文章:

服务器技术(三)--Nginx

Nginx介绍 Nginx是什么、适用场景 Nginx是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。 Nginx专为性能优化而开发,性能是其最重要的考量&#xf…...

OpenCV——总结《车牌识别》之《常用的函数介绍》

1. cv2.getStructuringElement(cv2.MORPH_RECT, (10, 10))element cv2.getStructuringElement(shape, ksize[, anchor])用于创建形态学操作的结构元素(structuring element)。 参数解释: shape:结构元素的形状,可以…...

chatgpt赋能python:如何利用Python进行自动化办公

如何利用Python进行自动化办公 在现代办公环境中,自动化成为了一种趋势。利用计算机程序自动处理重复性劳动,可以提高生产效率和工作质量,同时也能够让工作更加轻松。Python作为一种常用的编程语言,在自动化办公中发挥了重要作用…...

linux-2.6.22.6内核网卡驱动框架分析

网络协议分为很多层,而驱动这层对应于实际的物理网卡部分,这也是最底层的部分,以cs89x0.c这个驱动程序为例来分析下网卡驱动程序框架。 正常开发一个驱动程序时,一般都遵循以下几个步骤: 1.分配某个结构体 2.设置该结…...

机器学习7:特征工程

在传统的软件工程中,核心是代码,然而,在机器学习项目中,重点则是特征——也就是说,开发人员优化模型的方法之一是增加和改进其输入特征。很多时候,优化特征比优化模型带来的增益要大得多。 笔者曾经参与过一…...

coverage代码覆盖率测试介绍

coverage代码覆盖率测试介绍 背景知识补充 1、什么是覆盖率 测试过程中提到的覆盖率,指的是已测试的内容,占待测内容的百分比,在一定程度上反应测试的完整程度。 覆盖率有可以根据要衡量的对象细分很多种,比如接口覆盖率、分支…...

使用 Debian、Docker 和 Nginx 部署 Web 应用

前言 本文将介绍基于 Debian 的系统上使用 Docker 和 Nginx 进行 Web 应用部署的过程。着重介绍了 Debian、Docker 和 Nginx 的安装和配置。 第 1 步:更新和升级 Debian 系统 通过 SSH 连接到服务器。更新软件包列表:sudo apt update升级已安装的软件…...

Redis原理 - 内存策略

原文首更地址,阅读效果更佳! Redis原理 - 内存策略 | CoderMast编程桅杆https://www.codermast.com/database/redis/redis-memery-strategy.html Redis 本身是一个典型的 key-value 内存存储数据库,因此所有的 key、value 都保存在之前学习…...

【计算机网络】IP 地址处理函数

目录 1.struct sockaddr_in的结构 2.一般我们写的结构 3.常见的“点分十进制” 到 ” uint32_t 的转化接口 3.1. inet_aton 和 inet_ntoa (ipv4) 3.2. inet_pton 和 inet_ntop (ipv4 和 ipv6) 3.3. inet_addr 和 inet_network 3…...

9i物联网浏览器(cef_114.2.110114.2.100支持H264视频)WinForm-CefSharp114(5735)视频版本体验

更新:2023.6.25 版本:Cef_114.2.110和114.2.100+chromium-114.0.5735.134的32位和64位 说明:支持图片,mp3,mp4(H264)多媒体 测试环境:windows server 2019 测试网址:www.html5test.com 1.包下载地址 1.1 https://www.nuget.org/packages/CefSharp.Common/ 1.2 https…...

如何在本地运行一个已关服但具有客户端的游戏

虽然游戏服务器关闭后,我们通常无法再进行在线游戏,但对于一些已经关服但仍保留客户端的游戏来说,我们仍然可以尝试在本地进行游玩。本文将介绍如何在本地运行一个已关服但具有客户端的游戏的方法。 一、获取游戏客户端 要在本地运行一个已关…...

C语言编程—预处理器

预处理器不是编译器的组成部分,但是它是编译过程中一个单独的步骤。简言之,C 预处理器只不过是一个文本替换工具而已,它们会指示编译器在实际编译之前完成所需的预处理。我们将把 C 预处理器(C Preprocessor)简写为 CP…...

使用 Maya Mari 设计 3D 波斯风格道具(p1)

今天瑞云渲染小编给大家带来了Simin Farrokh Ahmadi 分享的Persian Afternoon 项目过程,解释了 Maya 和 Mari 中的建模、纹理和照明过程。 介绍 我的名字是西敏-法罗赫-艾哈迈迪,人们都叫我辛巴 在我十几岁的时候,我就意识到我喜欢艺术和创造…...

Redis分布式问题

Redis实现分布式锁 Redis为单进程单线程模式,采用队列模式将并发访问变成串行访问,且多客户端对Redis的连接并不存在竞争关系Redis中可以使用SETNX命令实现分布式锁。当且仅当 key 不存在,将 key 的值设为 value。 若给定的 key 已经存在&…...

synchronized原理

目录 一、基本特点 二、加锁过程 2.1、偏向锁 2.2、轻量级锁 2.3、重量级锁 三、其它的优化操作 3.1、锁消除 3.2、锁粗化 一、基本特点 synchronized有以下特性: 开始是乐观锁,如果锁冲突频繁,就转换为悲观锁。开始是轻量级锁&#xff0c…...

10G光模块能兼容千兆光口吗

当涉及到光网络设备和光模块的兼容性时,确保正确的匹配是至关重要的。本期文章内容,我们将探讨10G光模块与千兆光口之间的兼容性。 一、10G光模块和千兆光口的基本概念 首先,我们需要了解10G光模块和千兆光口的基本概念。10G光模块是一种用…...

css 显示省略号 和 动态显示省略号

省略是非常常见的功能。 简单的实现省略号 下面的代码就可以实现省略号,超过宽度的时候就会出现省略号 .text-name{//宽高是一定要设置的不然是会无效延伸的width: 200rpx;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;}稍微复杂点的情况&#…...

LeetCode 1253. 重构 2 行二进制矩阵

【LetMeFly】1253.重构 2 行二进制矩阵 力扣题目链接:https://leetcode.cn/problems/reconstruct-a-2-row-binary-matrix/ 给你一个 2 行 n 列的二进制数组: 矩阵是一个二进制矩阵,这意味着矩阵中的每个元素不是 0 就是 1。第 0 行的元素之…...

【八股】【C++】内存

这里写目录标题 内存空间分配new和delete原理C有几种newmalloc / free 与 new / delete区别malloc和free原理?delete和delete[]区别?C内存泄漏malloc申请的存储空间能用delete释放吗?malloc、calloc函数、realloc函数C中浅拷贝与深拷贝栈和队列的区别C里…...

数据库G等待

> db^Cgbasedbtpc:~$ dbaccess db10 -Database selected.> call insert_t();Routine executed.Elapsed time: 811.630 sec 磁盘逻辑日志,无BUF库> ^Cgbasedbtpc:~$ gbasedbtpc:~$ dbaccess db10 -Database selected.> call insert_t();Routine executed.Elapse…...

PCB封装设计指导(一)基础知识

PCB封装设计指导(一)基础知识 PCB封装是PCB设计的基础,也是PCB最关键的部件之一,尺寸需要非常准确且精确,关系到设计,生产加工,贴片等后续一系列的流程。 下面以Allegro为例介绍封装创建前的一些基础知识 1.各个psm文件代表什么 mechanical symbol 是.bsm Package sy…...

Flask框架之Restful--介绍--下载--基本使用

目录 Restful 概念 架构的主要原则 适用场景 协议 数据传输格式 url链接规则 HTTP请求方式 状态码 Restful的基本使用 介绍 优势 缺点 安装 基本使用 注意 Restful 概念 RESTful(Representational State Transfer)是一种用于设计网络应用…...

2023年上海市浦东新区网络安全管理员决赛理论题样题

目录 一、判断题 二、单选题 三、多选题 一、判断题 1.等保1.0至等保2.0从信息系统拓展为网络和信息系统。 正确 (1)保护对象改变 等保1.0保护的对象是信息系统,等保2.0增加为网络和信息系统,增加了云计算、大数据、工业控制系统、物联网、移动物联技术、网络基础…...

SQL语言的四大组成部分——DCL(数据控制语言)

1️⃣前言 SQL语言中的DCL(Data Control Language)是一组用于控制数据库用户访问权限的语言,主要包括GRANT、REVOKE、DENY等关键字。 文章目录 1️⃣前言2️⃣DCL语言3️⃣GRANT关键字4️⃣REVOKE关键字5️⃣DENY关键字6️⃣总结附&#xff1…...

ChatGPT新功能曝光:可记住用户信息、上传文件和工作区

🦉 AI新闻 🚀 ChatGPT新功能曝光:可记住用户信息、上传文件和工作区 摘要:一张神秘截图曝光了ChatGPT新功能,包括可记住用户信息的"My profile"、上传和管理文件的"My files"以及可以让AI使用不…...

【Unity编辑器扩展】(三)PSD转UGUI Prefab, 一键拼UI解放美术/程序(完结)

工具效果: 第一步,把psd图层转换为可编辑的节点树,并自动解析UI类型、自动绑定UI子元素: 第二步, 点击“生成UIForm"按钮生成UI预制体 (若有UI类型遗漏可在下拉菜单手动点选UI类型): 验证一键生成UI效果: 书接上…...

SpringBoot开发Restful风格的接口实现CRUD功能

基于SpringBoot开发一个Restful接口 前言一、什么是SpringBoot?二、实战---基于SpringBoot开发一个Restful接口1.开发前的准备工作1.1 添加相关依赖 (pom文件) 1.2 创建相关数据库和表1.3 数据库配置文件 2.实战开发---代码逻辑2.1 实体类2.2…...

【Servlet学习三】实现一个内存版本的简易计算器~

目录 一、方式1:使用form表单的形式(不推荐) 🌈1、前端代码:HTML文件 🌈2、后端代码:Calculator_form.java文件 🌈3、最终效果 二、方式2:使用ajax形式(…...

Linux c语言获取本机网关 ip 地址

文章目录 前言一、获取本机网关 ip 地址1.1 代码示例1.2 代码详解介绍 二、使用Netlink套接字实时监控网络事件2.1 简介2.2 示例代码 前言 这篇文章写了获取本机的ip地址和子网掩码:Linux c语言获取本机 ip、子网掩码 一、获取本机网关 ip 地址 使用Netlink套接字…...

nginx部署本地项目如何让异地公网访问?服务器端口映射配置!

接触过IIS或apache的小伙伴们,对nginx是比较容易理解的,nginx有点类似,又有所差异,在选择使用时根据自己本地应用场景来部署使用即可。通过一些对比可能会更加清楚了解: 1.nginx是轻量级,比apache占用更少…...