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

Nginx网络服务

1 Nginx服务基础

Nginx( 发音为[engine x] ) 专为性能优化而开发,其最知名的优点是它的稳定性和低系
统资源消耗, 以及对HTTP 并发连接的高处理能力(单台物理服务器可支持30000~50000
个并发请求) 。正因为如此, 大矗提供社交网络、新闻资讯、电子商务及虚拟主机等服务
的企业纷纷选择Ngi nx 来提供Web 服务。

1.1 Nginx 1.12 安装及运行控制

1. 编译安装Nginx

( 1 ) 安装支持软件

Nginx 的配置及运行需要pcre 、zlib 等软件包的支持, 因此应预先安装这些软件的开发
包( devel ) , 以便提供相应的库和头文件,确保Nginx 的安装顺利完成。

[root@localhost ~]#yum -y install pcre-devel zlib-devel gcc++ gcc

( 2 ) 创建运行用户、组
Nginx 服务程序默认以nobody 身份运行,建议为其创建专门的用户账号,以便更准确
地控制其访问权限,增加灵活性、降低安全风险。例如,创建一个名为nginx 的用户,不建
立宿主文件夹, 也禁止登录到Shell 环境。

[root@localhost ~]#yum -y install pcre-devel zlib-devel gcc++ gcc

( 3 ) 编译安装Nginx
配置Nginx 的编译选项时, 将安装目录设为/usr/local/nginx,运行用户和组均设为nginx:
启用http_stub_status_m odule 模块以支持状态统计, 便于查看服务器的连接信息。

[root@localhost ~]# tar zxf nginx-1.12.0.tar.gz
[root@localhost ~]#cd nginx-1.12.0
[root@localhost nginx-1 .12.0]#./configure --prefix=/usr/local/nginx --user=nginx 
--group=nginx --with-http_stub_status_module
[root@localhost nginx-1 .12.0]# make&&make install

为了使Nginx服务器的运行更加方便,可以为主程序nginx创建链接文件, 以便管理员
直接执行“ ngi nx ”命令就可以调用Nginx的主程序。

2. Nginx 的运行控制

( 1 ) 检查配置文件
与Apache 的主程序httpd 类似, Ngi nx 的主程序也提供了“-t”选项用来对配置文件进行检查, 以便找出不当或错误的配置。配置文件ngi nx .conf 默认位于安装目录下的conf/子目录中。若要检查位千其他位置的配置文件, 可使用“-c”选项来指定路径。

( 2 ) 启动、停止Nginx

直接运行Nginx 即可启动Nginx 服务器, 这种方式将使用默认的配置文件, 若要改用其他配置文件, 需添加“-c 配置文件路径”选项来指定路径。需要注意的是, 若服务器中已装有httpd 等其他Web 服务软件, 应采取措施(修改端口、停用或卸载)避免冲突。

通过检查Nginx 程序的监听状态, 或者在浏览器中访问此Web 服务( 默认页面将显示"Welcome to nginx!" ) , 可以确认Ngi nx 服务是否正常运行。

 主程序Nginx 支待标准的进程信号, 通过KILL 或killall 命令发送HUP 信号表示重载配置,QUIT 信号表示退出进程, KILL 信号表示杀死进程。例如, 若使用ki llall 命令, 重载配置、停止服务的操作分别如下所示(通过“-s”选项指定信号种类)。

[root@localhost ~]#killall -s HUP nginx            //选项-s HUP 等同千- 1
[root@localhost ~]#killall -s QUIT nginx            //选项-s QUIT 等同千-3

当Nginx 进程运行时, PID 号默认存放在logs/ 目录下的nginx . pid 文件中, 因此若改用KILL 命令, 也可以根据ngi nx . p id 文件中的P ID 号来进行控制。

( 3 ) 添加Nginx 系统服务

为了使Nginx 服务的启动、停止、重载等操作更加方便, 可以编写Ngi nx 服务脚本,并使用ch kconfig 和systemctl 工具来进行管理,也更加符合CentOS7.3 系统的管理习惯。

[root@localhost ~]# vim /etc/init.d/nginx

#!/bin/bash

#chkconfig: - 99 20

#description:Nginx Service Control Script

PROG="/usr/local/nginx/sbin/nginx"

PIDF="/usr/local/nginx/logs/nginx.pid"

case "$1" in

start)

$PROG

;;

stop)

pkill nginx 

;;

restart)

$0 stop

$0 start

;;

reload)

kill -s HUP $(cat $PIDF)

;;

*)

echo "Usage: $0 {start|stop|restart|reload}"

exit 1

esac

exit 0

[root@localhost ~]# chmod +x /etc/init.d/nginx

[root@localhost ~]# chkconfig --add nginx

[root@localhost ~]# systemctl status nginx

1.2:配置文件nginx.conf

1. 全局配置

由各种配置语句组成, 不使用特定的界定标记。全局配置部分包括Nginx 服务的运行用户、工作进程数、错误日志、PIO 存放位置等基本设置。

#user nobody;           ##运行用户

worker_processes 1;           ##工作进程数量

#error_log logs/error.log;              ##错误日志文件的位置

#pid logs/nginx.pid;                        ##PID 文件的位置

2. I/0 事件配置

events {

use epoll;              ##使用 epoll 模型

worker_connections 4096;      ##每进程处理 4096 个连接

}

3. HTTP 配置

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

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;

#gzip  on;

    server {

        listen       80;

        server_name  www.benet.com;

        charset utf-8;

        #access_log  logs/host.access.log  main;

        location / {

            root   html;

            index  index.html index.htm;

        }

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }

}

}

1.3:访问状态统计

Nginx 内置了HTTP_STUB_STATUS 状态统计模块, 用来反馈当前的Web 访问情况。配置编译参数时可添加--with-http_stub_status_module 来启用此模块支待, 可以使用命令/usr/local/nginx/sbin/nginx -V 查看已安装的Nginx 是否包含HTTP_STUB_STATUS 模块。
要使用Nginx 的状态统计功能, 除了启用内建模块以外, 还需要修改nginx. conf 配置文件, 指定访问位置并添加stub_status 配置代码。

location /status {

                stub_status on;

                access_log off;

        }

2 LNMP 架构部署及应用

2.1:构建LNMP网站平台

1. 安装MySQL 服务

2. 安装PHP解析环境

新版本的PHP ( 如5. 5 版本)已经自带FPM ( FastCGI Process Manager, FastCGI进程管理器) 模块, 用来对PHP 解析实例进行管理、优化解析效率。单服务器的LNMP 架构通常使用这种方式, 因此在配置PHP 编译选项时应添加“”--enable-fp m” 以启用此模块。
以源码包PHP-5 . 5. 38 为例, 具体安装过程如下。为了提高PHP 解析效率, 建议将相应版本的Zend G ua 「dloade r 也装上

(1) 编译安装PHP

[root@localhost ~]# yum -y install gd libxml2-devel libjpeg-devel libpng-devel

[root@localhost ~]#tar -zxvf php-5.5.38.tar.gz

[root@localhost ~]#cd php-5.5.38/

[root@localhost php-5.5.38]# ./configure \

--prefix=/usr/local/php5 \

--with-gd \

--with-zlib \

--with-mysql=/usr/local/mysql \

--with-mysqli=/usr/local/mysql/bin/mysql_config \

--with-config-file-path=/usr/local/php5 \

--enable-mbstring \

--enable-fpm \

--with-jpeg-dir=/usr/lib

  • libxml2-devel:libxml是一个用来解析XML文档的函数库
  • libjpeg-devel  #是一个完全用C语言编写的库,包含了被广泛使用的JPEG解码、JPEG编码和其他的JPEG功能的实现  
  • libpng-devel   #libpng 是一套免费的、公开源代码的程序库,支持对 PNG 图形文件的创建、读写等操作  
  • GD指的是Graphic Device,PHP的GD库是用来处理图形的扩展库,通过GD库提供的一系列API,可以对图像进行处理或者直接生成新的图片。PHP除了能进行文本处理以外,通过GD库,可以对JPG、PNG、GIF、SWF等图片进行处理
  • zlib-devel   #Zlib是一个压缩和解压模块
(2)安装后调整

[root@localhost php-5.5.38]# cp php.ini-development /usr/local/php5/php.ini

[root@localhost php-5.5.38]# ln -s /usr/local/php5/bin/* /usr/local/bin/

[root@localhost php-5.5.38]# ln -s /usr/local/php5/sbin/* /usr/local/sbin/

(3)安装 ZendGuardLoader  

[root@localhost ~]# tar -zxvf zend-loader-php5.5-linux-x86_64_update1.tar.gz

[root@localhost ~]# cd zend-loader-php5.5-linux-x86_64/

[root@localhost zend-loader-php5.5-linux-x86_64]# cp ZendGuardLoader.so /usr/local/php5/lib/php/

[root@localhost zend-loader-php5.5-linux-x86_64]# vim /usr/local/php5/php.ini

添加下列内容:

zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so

zend_loader.enable=1

3. 配置Nginx 支持PHP 环境 

若要让Nginx 能够解析PHP 网页, 有两种方法可以选择: 其一, 充当中介, 将访问PHP页面的Web 请求转交给其他服务器( LAM P ) 去处理;其二, 通过使用PH P 的FPM 模块来调用本机的PHP 环境。

( 1) 启用php-fpm 进程

如果选用fpm 方式, 则需要先启动ph p-fpm 进程,以便监听p hp 解析请求。参考范例建立php-fpm. conf 配置文件, 并修改其中的P I O 文件、运行用户、服务数(进程数量)等相关设置,然后启动p hp-fp m 程序即可(默认监听本机的9000 端口)

在php-fpm.conf 文件中,pid 配置行指出了PID 信息的存放位置, 对应的实际路径为/usr/local/php 5/var/run/ph p-fpm . pid 。根据上述信息, 可以修改Nginx 服务脚本, 以便启动/停止Nginx 服务器时将ph p-fpm 进程也自动启停。

[root@localhost ~]# cd /usr/local/php5/etc/

[root@localhost etc]# cp php-fpm.conf.default php-fpm.conf

[root@localhost etc]# useradd -M -s /sbin/nologin php

[root@localhost etc]# vim php-fpm.conf

pid = run/php-fpm.pid

user = php

group = php

pm.max_children = 50   ##最多子进程数

pm.start_servers = 20 ##启动时开启的进程数

pm.min_spare_servers = 5 ##最少空闲进程数

pm.max_spare_servers = 35   ##最多空闲进程数

[root@localhost etc]# /usr/local/sbin/php-fpm

[root@localhost etc]# netstat -anpt | grep php-fpm

[root@localhost etc]# vim /etc/init.d/nginx

#!/bin/bash

#chkconfig: - 99 20

#description:Nginx Service Control Script

PROG="/usr/local/nginx/sbin/nginx"

PIDF="/usr/local/nginx/logs/nginx.pid"

PROG_FPM="/usr/local/sbin/php-fpm"

PIDF_FPM="/usr/local/php5/var/run/php-fpm.pid"

case "$1" in

start)

  $PROG

  $PROG_FPM

  ;;

stop)

  pkill nginx

  pkill php-fpm

  ;;

restart)

  $0 stop

  $0 start

  ;;

reload)

  kill -s HUP $(cat $PIDF)

  kill -s HUP $(cat $PIDF_FPM)

  ;;

*)

  echo "Usage: $0 {start|stop|restart|reload}"

  exit 1

esac

exit 0

[root@localhost ~]# systemctl daemon-reload

[root@localhost ~]# systemctl restart nginx

( 2 ) 配置Nginx 支持PHP 解析

无论是将PHP 页面交给LAMP 服务去解析, 还是调用本机的ph p-fpm 进程进行解析,都需要在“'serve{}"配置段中添加location 设置, 以便指定当访问php 页面时采取何种操作。
对于第一种方法( 转给其他Web 服务器处理) , 使用的配置语句如下所示。例如, 交给IP 地址为192 .168. 1 . 22 的LAMP 服务器处理, 从而实现由Nginx 负责处理静态页面,LAMP 负责动态页面的分离效果。

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

Server{

root /var/www/kgc/bbs;

location ~ \.php$ {

proxy_pass http://192.168.10.101:80;

}

}

对于第二种方法( 调用本机的p hp-fpm 进程) , 使用的配置语句如下所示。

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

Server{
listen 80;

server_name www.bt.com;

      location / {
            root   /var/www/html;

            index  index.html index.htm index.php;

        }

        location ~ \.php$ {
            root           /var/www/html;

            fastcgi_pass   127.0.0.1:9000;

            fastcgi_index  index.php;

            include        fastcgi.conf;

        }

}

( 3) PHP 页面访问测试

2.2:在LNMP平台中部署Web应用

1. 下载并部署程序代码

Discuz ! 社区论坛, 是一个采用PHP 与mysq l 等多种数据库构建的性能优异, 功能全面且安全稳定的社区论坛( BBS ) 软件, 其官方网站为www. discuz . net 。
将下载的D iscuz 源码文件解压, 找到其中的upl oad 文件夹并将其放置到LN M P 服务器的网站根目录, 然后适当调整权限( 若此处不调整, 也可以参考安装页面的提示再调整) ,以允许Nginx 、ph p-fpm 程序拥有必要的写入权限。

[root@localhost ~]# yum -y install unzip

[root@localhost ~]# unzip Discuz_X3.3_SC_UTF8.zip

[root@localhost ~]# mkdir -p /var/www/html/bbs

[root@localhost ~]# mv upload/* /var/www/html/bbs

[root@localhost ~]# chown -R php:php /var/www/html/bbs/

2:创建数据库

D iscuz 论坛中的帖子、板块等信息需要保存在数据库中, 所以要针对Discuz 创建数据
库。为了降低Web 应用程序对数据库的风险, 建议设置专用的数据库及授权用户, 而不要
直接使用root 用户。例如, 可以新建bbs 库、授权用户为runbbs, 操作如下所示。

[root@localhost ~]# mysql -uroot -p

mysql>create database bbs;

mysql>grant all on bbs.* to runbbs@127.0.0.1 identified by 'bbs123';

mysql>grant all on bbs.* to runbbs@'localhost' identified by 'bbs123';

3. 安装Web 应用

访问服务器U RL 地址, 将会打开Discuz 的安装程序, 根据页面提示,只需要三部即可轻松完成安装

4. 访问Web 应用系统

完成安装后, 通过访问http:/1192 . 168 .9.237/bbs/forum. p hp, 可以看到Discuz 社区论坛站点首页, 如图5.3 所示; 通过访问http:/1192 . 168.9.237/bbs/adm in . ph p 并以管理员账号登录后, 可以进入管理后台。

相关文章:

Nginx网络服务

1 Nginx服务基础 Nginx( 发音为[engine x] ) 专为性能优化而开发,其最知名的优点是它的稳定性和低系 统资源消耗, 以及对HTTP 并发连接的高处理能力(单台物理服务器可支持30000~50000 个并发请求) 。正因为…...

ifconfig eth0 hw ether

ifconfig hw ether 是一个用于在 Linux 系统中设置或更改网络接口的硬件地址(即 MAC 地址)的命令。具体操作步骤如下: 首先,您需要确定要更改 MAC 地址的网络接口名称,通常是 eth0, eth1 等,取决于您的系统…...

微信小程序录音机源代码

<!-- <button bind:tap"startTab">开始录音</button> <button bind:tap"stopTab">结束录音</button> <button bind:tap"playTab">播放录音</button> <view style"margin: 0 auto;">{{ti…...

基于c语言的简单的数据库

​‌​⁠​​​​​⁠​‬​‬‌​‍​​​‌​‌‬​‌​⁠​​&#xfeff;‬‍‬​​⁠​‬‍&#xfeff;​​‬​​​‬简单的数据库 - 飞书云文档 (feishu.cn) mydatabase: 实现一个简单的数据库&#xff0c;基于B树 (gitee.com)...

Docker 容器内运行的 Neo4j 实例 安装apoc插件

插件 本页描述了如何将插件安装到在 Docker 容器内运行的 Neo4j 实例中。有关插件的一般说明&#xff0c;请参见配置 → 插件。 安装插件 安装插件&#xff0c;包括用户定义的程序&#xff0c;将包含插件 JAR 的文件夹或卷挂载到 /plugins &#xff0c;例如&#xff1a; docker…...

PostgreSQL源码分析——审计插件pgaudit

PostgreSQL审计插件pgaudit 在PostgreSQL中&#xff0c;提供了开源的审计插件pgaudit&#xff0c;但是其功能并不完善&#xff0c;只提供了基本的审计功能&#xff0c;对此&#xff0c;很多基于PG开发的商业数据库大多提供了丰富的审计功能。比如人大金仓&#xff0c;openGaus…...

ijkplayer编译 android版本

ijkplayer源码下载地址如下&#xff1a;https://github.com/bilibili/ijkplayer 下载代码&#xff0c;直接执行如下命令即可&#xff1a; $cd /data/project/ijkplayer/ $git clone https://github.com/bilibili/ijkplayer.git $git checkout -B latest k0.8.8 1 环境安装 …...

面向对象的进阶---static

1.static 静态变量 package com.itheima.a01staticdemo01;public class Student {private String name;private int age;public static String teacherName;public Student() {}public Student(String name, int age) {this.name name;this.age age;}/*** 获取* return n…...

React useContext

useContext 允许父组件向其下层无论多深的任何组件提供信息&#xff0c;而无需通过 props 显式传递。 // 1. LevelContext.js 创建 context&#xff0c;将其从文件中导出 import { createContext } from react; export const LevelContext createContext(1);// 2. Section.j…...

【尚庭公寓SpringBoot + Vue 项目实战】用户管理(十五)

【尚庭公寓SpringBoot Vue 项目实战】用户管理&#xff08;十五&#xff09; 文章目录 【尚庭公寓SpringBoot Vue 项目实战】用户管理&#xff08;十五&#xff09;1、业务介绍2、接口实现2.1、根据条件分页查询用户列表2.2、根据ID更新用户状态 1、业务介绍 用户管理共包含两…...

laravel中如何向字段标签添加工具提示

首先&#xff0c;您可以使用 轻松自定义字段标签->label()。我相信您知道这一点。但您知道吗……标签输出未转义&#xff1f;这意味着您也可以在标签中包含 HTML。 为了尽快实现上述目标&#xff0c;我只是采取了一个快速而粗糙的解决方案&#xff1a; CRUD::field(nickna…...

高考志愿填报,选专业应该考虑哪些因素?

这是一个复杂的社会&#xff0c;各种影响就业的因素层出不穷&#xff0c;也从未断绝。对于高考生而言&#xff0c;高考刚结束&#xff0c;短暂的放松后&#xff0c;就必须考虑自身以后应该就读什么专业&#xff0c;如果不对就读专业进行评估&#xff0c;仔细挑选&#xff0c;毕…...

图书管理系统代码(Java)

1、运行演示 QQ2024528-205028-HD 详细讲解在这篇博客&#xff1a;JavaSE&#xff1a;图书管理系统-CSDN博客 2、所建的包 3、Java代码 3.1 book包 3.1.1 Book类代码 package book;/*** Created with IntelliJ IDEA.* Description:* User: dings* Date: 2024-05-13* Time:…...

Nginx反向代理Kingbase数据库

本文适用于开发人员学习运维领域知识&#xff0c;主要内容为在个人理解的基础上对企业级开发中所使用的Nginx和数据库kingbase相关使用&#xff0c;并附上Nginx反向代理kingbase数据库的相关配置的操作方式&#xff0c;感谢阅读 为什么是nginx代理kingbase数据库服务端 生产环…...

没有字幕的高清爆款视频素材去哪里找?无字幕无水印素材网站分享

在寻找无水印高清视频素材的道路上感到困惑&#xff1f;欢迎来到今天的分享&#xff0c;我将为您介绍一些海外优质的素材网站&#xff0c;以及国内极具特色的“蛙学府”。不论您是短视频制作的新手还是老手&#xff0c;这些网站都将为您的创意注入新活力。 蛙学府网 蛙学府网不…...

Java23种设计模式(一)

前言 这2个月来&#xff0c;重新出发&#xff0c;从java开发需要的数据库、查询日志工具、开发工具等的安装、环境配置&#xff0c;再到后面的基础学习、数据库学习、扩展学习&#xff08;maven、mq、设计模式、spring 系列等等&#xff09;&#xff0c;边学边记录&#xff0c…...

Spring Boot集成websocket实现webrtc功能

1.什么是webrtc&#xff1f; WebRTC 是 Web 实时通信&#xff08;Real-Time Communication&#xff09;的缩写&#xff0c;它既是 API 也是协议。WebRTC 协议是两个 WebRTC Agent 协商双向安全实时通信的一组规则。开发人员可以通过 WebRTC API 使用 WebRTC 协议。目前 WebRTC…...

StableSwarmUI 安装教程(详细)

文章目录 背景特点安装 背景 StableSwarmUI是StabilityAI官方开源的一个文生图工作流UI&#xff0c;目前处于beta阶段&#xff0c;但主流程是可以跑通的。该UI支持接入ComfyUI、Stable Diffusion-WebUI。其工作原理就是使用ComfyUI、Stable Diffusion-WebUI或者StabilityAI官方…...

利用Unity XR交互工具包实现简易VR菜单控制——6.18山大软院项目实训

初始设置 在Unity项目中&#xff0c;首先需要确保安装了XR插件和XR交互工具包。这些工具包提供了对VR硬件的支持&#xff0c;以及一系列用于快速开发VR交互的组件和预设。 脚本概览 本示例中的menuController脚本附加在一个Unity GameObject上&#xff0c;这个脚本负责监听用…...

区间预测 | Matlab实现CNN-ABKDE卷积神经网络自适应带宽核密度估计多变量回归区间预测

区间预测 | Matlab实现CNN-ABKDE卷积神经网络自适应带宽核密度估计多变量回归区间预测 目录 区间预测 | Matlab实现CNN-ABKDE卷积神经网络自适应带宽核密度估计多变量回归区间预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现CNN-ABKDE卷积神经网络自适应…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展&#xff1a;显示创建时间8. 功能扩展&#xff1a;记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波&#xff1a;可以用来解决所提出的地质任务的波&#xff1b;干扰波&#xff1a;所有妨碍辨认、追踪有效波的其他波。 地震勘探中&#xff0c;有效波和干扰波是相对的。例如&#xff0c;在反射波…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘

美国西海岸的夏天&#xff0c;再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至&#xff0c;这不仅是开发者的盛宴&#xff0c;更是全球数亿苹果用户翘首以盼的科技春晚。今年&#xff0c;苹果依旧为我们带来了全家桶式的系统更新&#xff0c;包括 iOS 26、iPadOS 26…...

MMaDA: Multimodal Large Diffusion Language Models

CODE &#xff1a; https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA&#xff0c;它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

Java数值运算常见陷阱与规避方法

整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...

【Linux】Linux 系统默认的目录及作用说明

博主介绍&#xff1a;✌全网粉丝23W&#xff0c;CSDN博客专家、Java领域优质创作者&#xff0c;掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围&#xff1a;SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...

渗透实战PortSwigger靶场:lab13存储型DOM XSS详解

进来是需要留言的&#xff0c;先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码&#xff0c;输入的<>当成字符串处理回显到页面中&#xff0c;看来只是把用户输…...

6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础

第三周 Day 3 &#x1f3af; 今日目标 理解类&#xff08;class&#xff09;和对象&#xff08;object&#xff09;的关系学会定义类的属性、方法和构造函数&#xff08;init&#xff09;掌握对象的创建与使用初识封装、继承和多态的基本概念&#xff08;预告&#xff09; &a…...

java高级——高阶函数、如何定义一个函数式接口类似stream流的filter

java高级——高阶函数、stream流 前情提要文章介绍一、函数伊始1.1 合格的函数1.2 有形的函数2. 函数对象2.1 函数对象——行为参数化2.2 函数对象——延迟执行 二、 函数编程语法1. 函数对象表现形式1.1 Lambda表达式1.2 方法引用&#xff08;Math::max&#xff09; 2 函数接口…...