运维系列.Nginx配置文件结构功能总结

运维系列
Nginx配置文件结构功能总结

- 文章信息 - Author: 李俊才 (jcLee95)
Visit me at CSDN: https://jclee95.blog.csdn.net
My WebSitehttp://thispage.tech/
Email: 291148484@163.com.
Shenzhen China
Address of this article:https://blog.csdn.net/qq_28550263/article/details/140242979
HuaWei:https://bbs.huaweicloud.com/blogs/430555

【介绍】:本文介绍了Nginx配置文件中的结构,简要介绍了各个主要部分的功能。

在这里插入图片描述


1. 概述

1.1 Nginx配置文件的作用

Nginx是一款高性能的Web服务器和反向代理服务器,其强大的功能和灵活的配置主要依赖于其配置文件。Nginx配置文件的作用包括:

  1. 定义Nginx服务器的运行参数,如工作进程数、连接超时时间等。
  2. 配置Nginx服务器的网络设置,如监听端口、服务器名称等。
  3. 设置Nginx服务器的路由规则,控制请求的转发和处理。
  4. 配置Nginx服务器的缓存、压缩、安全等功能,优化性能和安全性。
  5. 实现负载均衡、反向代理等高级功能,提高应用的可扩展性和可用性。

Nginx配置文件是Nginx服务器的核心,通过灵活的配置,可以实现各种强大的功能,满足不同的应用需求。

1.2 Nginx主配置文件nginx.conf的位置

Nginx的主配置文件是nginx.conf,其默认位置因操作系统而异:

  • Linux系统:

    • /etc/nginx/nginx.conf
    • /usr/local/nginx/conf/nginx.conf
  • Windows系统:

    • C:\nginx\conf\nginx.conf
  • macOS系统(通过Homebrew安装):

    • /usr/local/etc/nginx/nginx.conf

除了主配置文件,Nginx还允许使用include指令引入其他配置文件,以实现配置的模块化和复用。在实际应用中,可以根据需要将不同的配置划分到不同的文件中,提高配置的可读性和可维护性。

2. Nginx配置文件的整体结构

2.1 全局配置块

全局配置块位于nginx.conf文件的最顶层,包含影响Nginx服务器整体运行的配置指令。这些指令在Nginx启动时被解析,并应用于所有的模块。

以下表格列出了全局配置块中的主要指令:

指令语法作用示例
useruser user [group];指定Nginx工作进程运行的用户和用户组user nginx;
worker_processesworker_processes number | auto;定义Nginx启动的工作进程数worker_processes auto;
error_logerror_log file [level];指定错误日志文件的位置和日志级别error_log /var/log/nginx/error.log warn;
pidpid file;设置存储主进程ID的文件路径pid /var/run/nginx.pid;
worker_rlimit_nofileworker_rlimit_nofile number;设置工作进程可以打开的最大文件描述符数量worker_rlimit_nofile 65535;
load_moduleload_module file;动态加载Nginx模块load_module modules/ngx_http_geoip_module.so;

全局配置块的示例:

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
worker_rlimit_nofile 65535;load_module modules/ngx_http_geoip_module.so;

这些全局配置指令对Nginx的整体性能和行为有重要影响。下表总结了一些常见的配置建议:

指令配置建议
worker_processes通常设置为CPU核心数,或使用"auto"让Nginx自动检测
worker_rlimit_nofile根据系统资源和预期并发连接数设置,通常设置较高值如65535
error_log根据需要调整日志级别,生产环境通常使用"warn"或"error"

在实际配置时,应根据服务器硬件资源和具体应用需求来调整这些参数,以优化Nginx的资源使用,提高服务器的性能和稳定性。

2.2 events配置块

events配置块用于配置Nginx的事件处理机制,影响Nginx处理连接的方式。它通常位于全局配置块之后,http配置块之前。

主要指令包括:

指令语法作用示例
worker_connectionsworker_connections number;设置每个工作进程的最大并发连接数worker_connections 1024;
useuse method;指定事件驱动模型use epoll;
multi_accept`multi_accept onoff;`是否一次接受多个新连接
accept_mutex`accept_mutex onoff;`是否开启负载均衡锁

一个events配置块示例如下:

events {worker_connections 1024;use epoll;multi_accept on;accept_mutex on;
}

配置说明:

  • worker_connections:根据服务器硬件资源和预期并发量设置。
  • use:在Linux系统上,推荐使用epoll。
  • multi_accept:开启可提高高并发下的性能,但可能增加系统负载。
  • accept_mutex:通常保持开启,可以减少工作进程之间的竞争。

2.3 http配置块

http配置块是Nginx配置中最复杂和最重要的部分,包含了与HTTP服务相关的所有配置。

2.3.1 http配置块的基本结构

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  /var/log/nginx/access.log  main;# 性能优化设置sendfile        on;tcp_nopush      on;tcp_nodelay     on;keepalive_timeout  65;types_hash_max_size 2048;# Gzip压缩gzip  on;gzip_disable "msie6";# 包含其他配置文件include /etc/nginx/conf.d/*.conf;# 服务器块server {# 服务器配置}
}

2.3.2 主要指令说明

指令作用示例
include包含其他配置文件include mime.types;
default_type设置默认的MIME类型default_type application/octet-stream;
log_format定义日志格式log_format main '...';
access_log设置访问日志的路径和格式access_log /var/log/nginx/access.log main;
sendfile启用sendfile系统调用来发送文件sendfile on;
tcp_nopush优化数据包的发送tcp_nopush on;
tcp_nodelay禁用Nagle算法tcp_nodelay on;
keepalive_timeout设置keep-alive连接的超时时间keepalive_timeout 65;
types_hash_max_size设置类型哈希表的最大大小types_hash_max_size 2048;
gzip启用gzip压缩gzip on;

2.3.3 性能优化建议

  1. 启用sendfiletcp_nopush以提高文件传输效率。
  2. 根据实际需求调整keepalive_timeout
  3. 合理配置Gzip压缩,可以显著减少传输数据量。
  4. 使用include指令分割配置文件,提高可维护性。

http配置块是Nginx配置的核心,其中包含了多个server块,每个server块定义了一个虚拟主机。在实际配置中,应根据具体需求调整这些参数,以优化服务器性能和资源利用。

2.4 mail配置块(可选)

mail配置块是Nginx的一个可选功能,用于配置Nginx作为邮件代理服务器。这个功能需要在编译Nginx时包含mail模块。mail配置块通常位于http配置块之后,与http配置块平级。

2.4.1 mail配置块的基本结构

mail {server_name mail.example.com;auth_http localhost:8008/auth-smtp;server {listen     25;protocol   smtp;proxy      on;}server {listen     110;protocol   pop3;proxy      on;}server {listen     143;protocol   imap;proxy      on;}
}

2.4.2 主要指令说明

指令作用示例
server_name设置邮件服务器的名称server_name mail.example.com;
auth_http指定用于身份验证的HTTP服务器auth_http localhost:8008/auth-smtp;
protocol指定邮件协议(smtp, pop3, imap)protocol smtp;
proxy启用邮件代理功能proxy on;
proxy_pass指定上游邮件服务器proxy_pass 192.168.1.100:25;
ssl启用SSL/TLS加密ssl on;
starttls启用STARTTLS命令支持starttls on;

2.4.3 配置说明和最佳实践

  1. 身份验证

    • auth_http指令指向一个HTTP服务器,用于验证用户身份。这个服务器需要自行实现。
  2. 协议支持

    • 可以为不同的邮件协议(SMTPPOP3IMAP)配置不同的server块。
  3. SSL/TLS加密

    • 建议为所有邮件服务启用SSL/TLS加密,以保护用户数据:

      server {listen     993 ssl;protocol   imap;ssl_certificate     /path/to/cert.pem;ssl_certificate_key /path/to/cert.key;
      }
      
  4. 上游服务器

    • 使用proxy_pass指定实际处理邮件的上游服务器:

      server {listen     25;protocol   smtp;proxy_pass 192.168.1.100:25;
      }
      
  5. 日志配置

    • 可以为邮件服务配置单独的访问日志:

      mail {access_log /var/log/nginx/mail.access.log;
      }
      

2.4.4 使用场景

  1. 负载均衡Nginx可以作为邮件服务的前端代理,将请求分发到多个后端邮件服务器。

  2. SSL终止Nginx可以处理SSL/TLS加密,减轻后端服务器的负担。

  3. 协议转换:可以在客户端和服务器之间进行协议转换,例如将POP3转换为IMAP

  4. 安全过滤:可以集成第三方模块,实现垃圾邮件过滤等功能。

2.4.5 注意事项

  • mail模块是可选的,需要在编译Nginx时明确包含。
  • 配置邮件服务需要考虑安全性,建议始终使用SSL/TLS加密。
  • 需要正确配置DNS记录(MX记录),以便邮件能够正确路由到Nginx服务器。

mail配置块使Nginx能够作为功能强大的邮件代理服务器,但其配置相对复杂,需要谨慎规划和测试。在大多数情况下,除非有特殊需求,否则通常会使用专门的邮件服务器软件(如PostfixDovecot等)来处理邮件服务。

3. 配置指令的语法和参数

3.1 指令的基本语法

Nginx配置文件中的指令遵循一定的语法规则,接下来将对这些语法规则展开介绍。

3.1.1 基本语法结构

Nginx配置指令的基本语法结构如下:

指令名 参数1 参数2 ... 参数N;

注意事项:

  1. 每个指令都以分号(;)结尾。
  2. 指令名和参数之间,以及参数之间使用空格分隔。
  3. 指令对大小写敏感。

3.1.2 指令上下文

Nginx的指令可以在不同的上下文中使用,主要包括:

  • 主上下文(Main Context
  • events上下文
  • http上下文
  • server上下文
  • location上下文
  • mail上下文(如果启用)

某些指令只能在特定上下文中使用,而有些指令可以在多个上下文中使用。例如:

# 主上下文
user nginx;http {# http上下文gzip on;server {# server上下文listen 80;location / {# location上下文root /usr/share/nginx/html;}}
}

3.1.3 指令继承

子上下文会继承父上下文的配置,除非在子上下文中明确重写。例如:

http {gzip on;server {# 继承http上下文的gzip配置location /api/ {# 重写gzip配置gzip off;}}
}

3.2 常用指令参数说明

3.2.1 listen指令

listen指令用于配置服务器监听的IP地址和端口。

语法:

listen address[:port] [default_server] [ssl] [http2] [proxy_protocol] [setfib=number] [fastopen=number] [backlog=number];

参数说明:

  • address: IP地址,可以是具体IP*(表示所有地址)
  • port: 端口号,默认为80
  • default_server: 将此server块标记为默认服务器
  • ssl: 启用SSL/TLS
  • http2: 启用HTTP/2协议
  • proxy_protocol: 启用代理协议

示例:

listen 80;
listen 443 ssl http2;
listen 192.168.1.1:8080 default_server;

3.2.2 server_name指令

server_name指令用于设置虚拟主机的域名。

语法:

server_name name1 [name2 ...];

参数说明:

  • name:可以是精确的域名、通配符域名或正则表达式

示例:

server_name example.com www.example.com;
server_name *.example.com;
server_name ~^www\d+\.example\.com$;

3.2.3 location指令

location指令用于配置如何处理特定的URI。

语法:

location [ = | ~ | ~* | ^~ ] uri { ... }

参数说明:

  • =:精确匹配
  • ~:区分大小写的正则匹配
  • ~*:不区分大小写的正则匹配
  • ^~:前缀匹配,优先级高于正则匹配

示例:

location = / {# 精确匹配"/"
}location ~* \.(gif|jpg|jpeg)$ {# 匹配以.gif、.jpg或.jpeg结尾的请求
}location /documents/ {# 匹配以/documents/开头的请求
}

3.2.4 proxy_pass指令

proxy_pass指令用于设置代理服务器的协议和地址。

语法:

proxy_pass URL;

参数说明:

  • URL:可以是HTTP(S)协议的URL,也可以是Unix域套接字路径

示例:

proxy_pass http://backend;
proxy_pass http://192.168.0.1:8080/api/;
proxy_pass unix:/tmp/backend.socket:/uri/;

3.2.5 fastcgi_pass指令

fastcgi_pass指令用于设置FastCGI服务器的地址。

语法:

fastcgi_pass address;

参数说明:

  • address:可以是IP地址和端口,也可以是Unix域套接字路径

示例:

fastcgi_pass localhost:9000;
fastcgi_pass unix:/tmp/php-fpm.socket;

3.2.6 root和alias指令

rootalias指令用于设置请求映射到服务器文件系统的路径。

语法:

root path;
alias path;

参数说明:

  • path:服务器上的文件系统路径

示例:

root /var/www/html;
alias /var/www/static/;

主要区别:

  • root会将完整的URI附加到指定路径后
  • alias只替换匹配的部分

3.2.7 index指令

index指令用于指定默认索引文件。

语法:

index file1 [file2 ...];

参数说明:

  • file:索引文件名

示例:

index index.html index.htm index.php;

这些是Nginx中一些常用指令的基本语法和参数说明。在实际配置中,可能还需要根据具体需求使用更多的指令和参数。理解这些基本语法和参数有助于更好地配置和优化Nginx服务器。

4. ★配置文件中的变量使用

Nginx配置文件中的变量使用是一个强大的特性,它允许我们动态地处理请求和响应。变量可以用于日志格式重写规则条件判断等多个方面。

Nginx中的变量分为两大类:内置变量自定义变量。接下来我们将使用讲个小节来对应介绍这两类变量的用法。

4.1 内置变量

Nginx提供了大量的内置变量,这些变量包含了请求、响应、服务器等相关的信息。

4.1.1 常用内置变量

以下是一些常用的内置变量:

变量名描述
$request_method请求方法(GETPOST等)
$request_uri完整的原始请求URI
$uri当前请求的URI(可能经过重写)
$query_string请求的查询字符串
$remote_addr客户端IP地址
$server_name匹配上的服务器名
$server_port服务器端口
$server_protocol服务器的HTTP版本(HTTP/1.0HTTP/1.1等)
$http_user_agent客户端User-Agent
$http_referer请求的Referer
$request_time请求处理时间,单位为秒,精确到毫秒
$status响应状态码
$body_bytes_sent发送给客户端的字节数,不包括响应头
$nginx_versionNginx版本

4.1.2 使用内置变量

内置变量可以在多个Nginx指令中使用,例如:

  1. 在日志格式中:
log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';
  1. 在条件判断中:
if ($request_method = POST) {return 405;
}
  1. 在重写规则中:
rewrite ^/old-page$ /new-page permanent;
  1. 在响应头中:
add_header X-Served-By $hostname;

4.2 自定义变量

除了内置变量,Nginx还允许我们定义和使用自定义变量,这为配置提供了更大的灵活性。

4.2.1 定义自定义变量

使用set指令可以定义自定义变量:

set $variable_name value;

例如:

set $mobile_rewrite do_not_perform;if ($http_user_agent ~* "(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino") {set $mobile_rewrite perform;
}if ($mobile_rewrite = perform) {rewrite ^ /mobile$uri redirect;
}

4.2.2 使用自定义变量

自定义变量可以在配置文件的多个地方使用,包括:

  1. 在location块中:
location / {set $foo "bar";return 200 $foo;
}
  1. 在if语句中:
if ($request_uri ~* "^/special") {set $special_uri "true";
}if ($special_uri = "true") {# 执行特殊处理
}
  1. 在rewrite指令中:
set $weekend "No";
if ($date_local ~ "Saturday|Sunday") {set $weekend "Yes";
}
rewrite ^/is-it-weekend /weekend.php?answer=$weekend last;

4.2.3 变量的作用域

自定义变量的作用域通常是请求级别的,这意味着:

  • 每个请求都有自己的变量集合。
  • 变量在请求处理的整个生命周期内有效。
  • 不同请求之间的变量是相互独立的。

4.2.4 变量使用的注意事项

  1. 变量名区分大小写。
  2. 使用未定义的变量不会导致错误,而是返回空字符串。
  3. 某些模块(如ngx_http_rewrite_module)会在配置加载时评估变量,而不是在运行时。
  4. 过度使用变量可能会影响性能,特别是在高并发场景下。

4.2.5 实际应用示例

  1. 根据客户端IP设置变量:
set $country "unknown";if ($geoip_country_code = "US") {set $country "USA";
}if ($geoip_country_code = "GB") {set $country "United Kingdom";
}proxy_set_header X-Country $country;
  1. 根据时间设置缓存策略:
map $time_iso8601 $cache_expiry {default         1h;~^2023-12-       5m;  # December 2023~^2023-11-       15m; # November 2023
}expires $cache_expiry;
  1. 动态设置上游服务器:
set $backend "default_backend";if ($request_uri ~* ^/api/) {set $backend "api_backend";
}if ($http_user_agent ~* "googlebot") {set $backend "bot_backend";
}proxy_pass http://$backend;

通过灵活使用内置变量和自定义变量,我们可以创建更加动态和智能的Nginx配置,以适应各种复杂的场景和需求。

5. ★配置文件的模块化和复用

随着Nginx配置的复杂性增加,将配置文件模块化并实现配置的复用变得越来越重要。这不仅可以提高配置的可读性和可维护性,还能减少重复代码,降低错误率。本节将介绍如何使用include指令实现配置文件的模块化,以及如何组织和管理配置片段。

5.1 include指令的使用

include指令是Nginx配置文件模块化的核心。它允许将其他配置文件包含到主配置文件中,从而实现配置的分割和复用。

5.1.1 include指令的语法量

include file | mask;
  • file:指定要包含的配置文件的路径。
  • mask:使用通配符指定要包含的多个配置文件。

5.1.2 include指令的使用场景

  1. 分割主配置文件

    # 在nginx.conf中
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
    
  2. 复用通用配置

    # 在server块中
    include /etc/nginx/snippets/ssl-params.conf;
    
  3. 按功能组织配置

    # 在http块中
    include /etc/nginx/mime.types;
    include /etc/nginx/proxy.conf;
    include /etc/nginx/fastcgi.conf;
    

5.1.3 include指令的注意事项

  1. 路径可以是绝对路径或相对路径(相对于主配置文件)。
  2. 可以使用通配符(*)包含多个文件。
  3. 被包含的文件必须有正确的Nginx配置语法。
  4. 包含的顺序很重要,后面的配置可能会覆盖前面的配置。

5.2 配置片段的组织和管理

合理组织和管理配置片段可以大大提高Nginx配置的可维护性。

5.2.1 配置片段的分类

  1. 全局配置:影响整个Nginx服务器的设置。
  2. HTTP配置:与HTTP服务相关的通用设置。
  3. 服务器配置:特定虚拟主机的配置。
  4. 位置配置:特定URI位置的处理规则。
  5. 功能模块:特定功能(如SSL、缓存、压缩等)的配置。

5.2.2 配置文件的目录结构

推荐的目录结构:

/etc/nginx/
├── nginx.conf
├── conf.d/
│   ├── default.conf
│   └── example.com.conf
├── snippets/
│   ├── ssl-params.conf
│   └── proxy-params.conf
├── sites-available/
│   ├── example.com
│   └── subdomain.example.com
└── sites-enabled/└── example.com -> ../sites-available/example.com
  • nginx.conf:主配置文件
  • conf.d/:存放额外的配置文件
  • snippets/:存放可复用的配置片段
  • sites-available/:存放所有的网站配置
  • sites-enabled/:存放已启用的网站配置(通常是符号链接)

5.2.3 配置片段的命名约定

  • 使用描述性的名称,如ssl-params.conf, php-fpm.conf
  • 对于网站配置,使用域名作为文件名,如example.com.conf
  • 使用一致的文件扩展名,通常是.conf

5.2.4 配置片段的版本控制

Nginx配置文件纳入版本控制系统(如Git)是一个好习惯:

  1. 跟踪配置的变更历史。
  2. 便于回滚到之前的配置。
  3. 便于团队协作和配置审查。

5.2.5 配置片段的示例

  1. SSL参数配置 (snippets/ssl-params.conf):

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_session_timeout 1d;
    ssl_session_cache shared:SSL:10m;
    ssl_session_tickets off;
    
  2. 代理参数配置 (snippets/proxy-params.conf):

    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_buffering on;
    proxy_buffer_size 128k;
    proxy_buffers 4 256k;
    proxy_busy_buffers_size 256k;
    
  3. PHP-FPM配置 (snippets/php-fpm.conf):

    location ~ \.php$ {fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;fastcgi_index index.php;include fastcgi_params;
    }
    
  4. 网站服务器配置 (sites-available/example.com):

    server {listen 80;server_name example.com www.example.com;root /var/www/example.com;include snippets/ssl-params.conf;include snippets/php-fpm.conf;location / {try_files $uri $uri/ /index.php?$query_string;}
    }
    

5.2.6 最佳实践

  1. 保持主配置文件(nginx.conf)简洁,主要用于全局设置和包含其他配置文件。
  2. 将常用的配置片段(如SSL参数、代理设置)放在snippets目录中。
  3. 为每个网站创建单独的配置文件,放在sites-available目录中。
  4. 使用符号链接将启用的网站配置从sites-available链接到sites-enabled
  5. 使用include指令时,尽量指定完整的文件路径,避免使用过于宽泛的通配符。
  6. 定期审查和清理未使用的配置文件。
  7. 在应用新的配置之前,始终使用nginx -t命令检查配置的语法。

通过合理使用include指令和组织配置片段,可以使Nginx的配置更加模块化、可维护和可复用。这不仅可以提高配置的效率,还能减少错误,使得管理大型和复杂的Nginx部署变得更加容易。

6. 总结

Nginx配置文件的结构和组织对于有效管理和使用Web服务器十分重要。本文是一个总结,详细介绍了Nginx配置文件的各个方面,前面的内容主要包括以下几点:

  1. 配置文件的整体结构:介绍了全局配置块、events块、http块等主要组成部分,以及它们的作用和常用指令。

  2. 指令语法和参数:解释了Nginx配置指令的基本语法规则,以及一些常用指令的参数含义和使用方法。

  3. 变量使用:讨论了Nginx内置变量和自定义变量的使用,这为创建动态和灵活的配置提供了基础。

  4. 配置的模块化和复用:介绍了如何使用include指令实现配置的模块化,以及如何组织和管理配置片段,提高配置的可维护性。

希望这些总结对你有所帮助。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

塑造卓越企业家IP:多维度视角下的策略解析

在构建和塑造企业家IP的过程中,我们需要从多个维度进行考量,以确保个人品牌能够全面、立体地展现企业家的独特魅力和价值。以下是从不同角度探讨如何做好一个企业家IP的策略。 一、从个人特质出发 深入了解自我:企业家需要清晰地认识到自己的…

Linux 系统管理 03——安装及管理程序

一、rpm 包安装 1、RPM Package Manger 由 Red Hat 公司提供,被众多 Linux 发行版本所采用。 建立统一的数据库文件,详细记录软件包安装、卸载等变化信息,能够自动分析软件包 依赖关系。 2、RPM 软件包 一般命名格式 3、查询已安装的 RP…

电路基础知识汇总

1.0 串连,并联,混连 串联的定义 电路串联是一种电路元件的连接方式,其中各个元件沿着单一路径互相连接,形成一个连续的链。在串联电路中,每个节点最多只连接两个元件,这意味着电流只有一条路径可以通过整个…

昇思25天学习打卡营第十一天|DCGAN生成漫画头像

练习营进入第11天了,今天学习的内容是DCGAN生成漫画头像,记录一下学习内容: GAN基础原理 这部分原理介绍参考GAN图像生成。 DCGAN原理 DCGAN(深度卷积对抗生成网络,Deep Convolutional Generative Adversarial Net…

Java的基础语法

叠甲:以下文章主要是依靠我的实际编码学习中总结出来的经验之谈,求逻辑自洽,不能百分百保证正确,有错误、未定义、不合适的内容请尽情指出! 文章目录 1.第一份程序1.1.代码编写1.2.代码运行1.2.1.命令行编译1.2.2.IEDA…

FL Studio 2024 发布,添加 FL Cloud 插件、AI 等功能

作为今年最受期待的音乐制作 DAW 更新之一,FL Studio 2024发布引入了新功能,同时采用了新的命名方式,从现在起将把发布年份纳入其名称中。DAW 的新增功能包括在 FL Cloud 中添加插件、AI 驱动的音乐创作工具和 FL Studio 的新效果。 FL Cloud…

【项目设计】负载均衡式——Online Judge

负载均衡式——Online Judge😎 前言🙌Online Judge 项目一、项目介绍二、项目技术栈三、项目使用环境四、项目宏观框架五、项目后端服务实现过程1、comm模块设计1.1 Log.hpp实现1.2 Util.hpp实现 2、compiler_server 模块设计2.1compile.hpp文件代码编写…

调制信号识别系列 (一):基准模型

调制信号识别系列 (一):基准模型 说明:本文包含对CNN和CNNLSTM基准模型的复现,模型架构参考下述两篇文章 文章目录 调制信号识别系列 (一):基准模型一、论文1、DL-PR: Generalized automatic modulation classification method b…

ThreadPoolExecutor - 管理线程池的核心类

下面是使用给定的初始参数创建一个新的 ThreadPoolExecutor &#xff08;构造方法&#xff09;。 public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue<Runnable> workQueue,ThreadFactory threadFactory,…

【Python】搭建属于自己 AI 机器人

目录 前言 1 准备工作 1.1 环境搭建 1.2 获取 API KEY 2 写代码 2.1 引用库 2.2 创建用户 2.3 创建对话 2.4 输出内容 2.5 调试 2.6 全部代码 2.7 简短的总结 3 优化代码 3.1 规范代码 3.1.1 引用库 3.1.2 创建提示词 3.1.3 创建模型 3.1.4 规范输出&#xf…

Git详细安装和使用教程

文章目录 准备工作-gitee注册认识及安装GitGit配置用户信息本地初始化Git仓库记录每次更新到仓库查看及切换历史版本Git忽略文件和查看文件状态Git分支-查看及切换Git分支-创建分支Git分支-合并及删除分支Git分支-命令补充Git分支-冲突需求: 准备工作-gitee注册 传送门: gite…

HDF4文件转TIF格式

HDF4 HDF4&#xff08;Hierarchical Data Format version 4&#xff09;是一种用于存储和管理机器间数据的库和多功能文件格式。它是一种自描述的文件格式&#xff0c;用于存档和管理数据。 HDF4与HDF5是两种截然不同的技术&#xff0c;HDF5解决了HDF4的一些重要缺陷。因此&am…

[终端安全]-3 移动终端之硬件安全(TEE)

&#xff08;参考资料&#xff1a;TrustZone for V8-A. pdf&#xff0c;来源ARM DEVELOPER官网&#xff09; TEE&#xff08;Trusted Execution Environment&#xff0c;可信执行环境&#xff09;是用于执行敏感代码和处理敏感数据的独立安全区域&#xff1b;以ARM TrustZone为…

cs231n作业1——Softmax

参考文章&#xff1a;cs231n assignment1——softmax Softmax softmax其实和SVM差别不大&#xff0c;两者损失函数不同&#xff0c;softmax就是把各个类的得分转化成了概率。 损失函数&#xff1a; def softmax_loss_naive(W, X, y, reg):loss 0.0dW np.zeros_like(W)num_…

信号与系统笔记分享

文章目录 一、导论信号分类周期问题能量信号和功率信号系统的线性判断时变&#xff0c;时不变系统因果系统判断记忆性系统判断稳定性系统判断 二、信号时域分析阶跃函数冲激函数取样性质四种特性1 筛选特性2 抽样特性3 展缩特性4 卷积特性卷积作用 冲激偶函数奇函数性质公式推导…

Ubuntu 20.04下多版本CUDA的安装与切换 超详细教程

目录 前言一、安装 CUDA1.找到所需版本对应命令2.下载 .run 文件3.安装 CUDA4.配置环境变量4.1 写入环境变量4.2 软连接 5.验证安装 二、安装 cudnn1.下载 cudnn2.解压文件3.替换文件4.验证安装 三、切换 CUDA 版本1.切换版本2.检查版本 前言 当我们复现代码时&#xff0c;总会…

彻底解决Path with “WEB-INF“ or “META-INF“: [WEB-INF/views/index.jsp]

背景描述 项目使用的是springboot2jsp的架构。以前好好的项目复制了一份&#xff0c;然后就无法访问报错。百度了好久都乱七八糟的&#xff0c;还没有解决问题。错误消息如下&#xff1a; 2024-07-05 15:45:51.335 INFO [http-nio-12581-exec-1]org.springframework.web.ser…

Linux服务器使用总结-不定时更新

# 查看升级日志 cat /var/log/dpkg.log |grep nvidia|grep libnvidia-common

阶段三:项目开发---搭建项目前后端系统基础架构:任务13:实现基本的登录功能

任务描述 任务名称&#xff1a; 实现基本的登录功能 知识点&#xff1a; 了解前端Vue项目的基本执行过程 重 点&#xff1a; 构建项目的基本登陆功能 内 容&#xff1a; 通过实现项目的基本登录功能&#xff0c;来了解前端Vue项目的基本执行过程&#xff0c;并完成基…

firewalld(8) policies

简介 前面的文章中我们介绍了firewalld的一些基本配置以及NAT的相关配置。在前面的配置中&#xff0c;我们所有的策略都是与zone相关的&#xff0c;例如配置的rich rule&#xff0c;--direct,以及NAT,并且这些配置都是数据包进入zone或者从zone发出时设置的策略。 我们在介绍…