nginx用法以及核心知识详解-可以当作使用nginx的操作手册

前言

nginx的使用真的是非常简单,下载下来解压运行就可以,配置都是再conf文件夹的里的nginx.conf文件里配置,所以对于nginx的上手使用,nginx.conf文件里字段的含义是需要掌握的,然后就是一些nginx的常见问题


nginx核心知识详解-可以当作使用nginx的操作手册

  • 前言
  • 1 完整nginx.conf文件注解版
  • 2 请解释一下什么是Nginx?
  • 3 请列举Nginx的一些特性
  • 4 请解释Nginx如何处理HTTP请求。
  • 5 使用“反向代理服务器”的优点是什么?
  • 6 在Nginx中,解释如何在URL中保留双斜线?

1 完整nginx.conf文件注解版

#user  nobody;#是否是守护进程运行 如防止ctrl+c杀死
daemon off;# 配置启动几个进程
worker_processes  1;# 配置pid文件的路径
#pid        logs/nginx.pid;#配置nginx与用户连接的属性
events {#单个工作进程可以允许同时建立外部连接的数量worker_connections  1024;
}# 配置nginx的业务功能,除了http外还有email
http {#文件扩展名与文件类型映射表
#  MIME——Multipurpose Internet Mail Extension(多用途因特网邮件扩展)最初是为了满足电子邮件支持多字符集及附件而出现的。
#  通过MIME,我们可以写一封既含有英文,又含有中文,再加上一个文件作为附件的邮件。这种含有多种类型数据的文件被称为多部分对象集合(Multipart messages)。
# HTTP服务器在发送一份报文主体时,在HTTP报文头部插入解释自身数据类型的MIME头部信息(Content-Type)。
# MIME-type和Content-Type的关系:
# 当web服务器收到静态的资源文件请求时,依据请求文件的后缀名在服务器的MIME配置文件中找到对应的MIME Type,再根据MIME Type设置HTTP ResponseContent-Type,然后客户端如浏览器根据Content-Type的值处理文件。include       mime.types;# /mime.type文件内容如下:
# types {
#     text/html                                        html htm shtml;
#     text/css                                         css;
#     text/xml                                         xml;
#     image/gif                                        gif;
#     image/jpeg                                       jpeg jpg;
#     application/javascript                           js;
#     application/atom+xml                             atom;
#     application/rss+xml                              rss;
#
#     text/mathml                                      mml;
#     text/plain                                       txt;
#     text/vnd.sun.j2me.app-descriptor                 jad;
#     text/vnd.wap.wml                                 wml;
#     text/x-component                                 htc;
#
#     image/png                                        png;
#     image/svg+xml                                    svg svgz;
#     image/tiff                                       tif tiff;
#     image/vnd.wap.wbmp                               wbmp;
#     image/webp                                       webp;
#     image/x-icon                                     ico;
#     image/x-jng                                      jng;
#     image/x-ms-bmp                                   bmp;
#
#     application/font-woff                            woff;
#     application/java-archive                         jar war ear;
#     application/json                                 json;
#     application/mac-binhex40                         hqx;
# 	...#默认文件类型,默认为text/plain
#  如果Web程序没设置,Nginx也没找到对应文件的扩展名的话,就使用默认的Type,这个在Nginx 里用 default_type定义: default_type application/octet-stream,这是应用程序文件类型的默认值。
#  application/octet-stream
#  是HTTP规范中Content-Type的一种,意思是 未知的应用程序文件 ,浏览器一般不会自动执行或询问执行。
#  只能提交一个二进制,如果提交文件的话,只能提交一个文件,后台接收参数只能有一个,而且只能是流(或者字节数组)。default_type  application/octet-stream;#性能优化-开启高效文件传输模式sendfile onsendfile        on;#当有数据时,不会直接发送,确保数据包已经装满数据,避免了网的拥塞#tcp_nopush     on;# http是一种无状态协议,客户端向服务器发送了请求,服务器响应之后就断开了连接。如果短时间内发出多个请求会影响性能
#http有一个keepAlive模式,它可以告诉webService处理完一个请求后,保持这个tcp打开状态,如果收到客户端的其它请求,会使用这个连接,而不会新建连接
#在tcp打开的这段时间内,也是占用资源的,所以占用过多就会影响性能
#nginx的keepalive_timeout 就是来指定KeepAlive的超时时间,默认是75#keepalive_timeout  0;keepalive_timeout  65;# 设置日志格式
# log_format语法格式及参数语法说明如下:
#  log_format    <NAME>    <String>;
#
#     关键字     格式标签   日志格式
#
#     关键字:其中关键字error_log不能改变
#     格式标签:格式标签是给一套日志格式设置一个独特的名字
#     日志格式:给日志设置格式
#
# 作用域    :    http#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '#                  '$status $body_bytes_sent "$http_referer" '#                  '"$http_user_agent" "$http_x_forwarded_for"';# log_format格式变量:
# 参数                      说明                                         示例
# $remote_addr             客户端地址                                    211.28.65.253
# $remote_user             客户端用户名称                                --
# $time_local              访问时间和时区                                18/Jul/2012:17:00:01 +0800
# $request                 请求的URIHTTP协议                           "GET /article-10000.html HTTP/1.1"
# $http_host               请求地址,即浏览器中你输入的地址(IP或域名)     www.wang.com 192.168.100.100
# $status                  HTTP请求状态                                  200
# $upstream_status         upstream状态                                  200
# $body_bytes_sent         发送给客户端文件内容大小                        1547
# $http_referer            url跳转来源                                   https://www.baidu.com/
# $http_user_agent         用户终端浏览器等信息                           "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; SV1; GTB7.0; .NET4.0C;
# $ssl_protocol            SSL协议版本                                   TLSv1
# $ssl_cipher              交换数据中的算法                               RC4-SHA
# $upstream_addr           后台upstream的地址,即真正提供服务的主机地址     10.10.10.100:80
# $request_time            整个请求的总时间                               0.205
# $upstream_response_time  请求过程中,upstream响应时间                    0.002#取消服务日志#access_log off;#用来指定日至文件的路径及使用的何种日志格式记录日志#access_log  logs/access.log  main;# 配置普通请求日志的输出路径access_log logs/access.log;# 配置错误日志的输出路径error_log logs/error.log;#设定实际的服务器列表upstream zp_server1 {server 127.0.0.1:8080;}# upstream后面是你当前配置的名称,在后面的proxy_pass参数中要对应# upstream abc {#ip_hash表示负载均衡配置,ip_hash的设置可以使每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,#可以解决session的问题,#备选为url_hash,指按用户的访问URL来进行分配,这样访问相同的URL时会指向同一台服务器,主要用于下载站点之类的,可以节略带宽资源。# 	ip_hash;#     server  127.0.0.10:8080  weight=6;#     server  127.0.0.11:8080  weight=4;#     server  127.0.0.12:8080  down;# }# server {#     listen  80;#     server_name www.99cd.top 99cd.top;#     index index.html index.htm index.php;#     location / {#         proxy_pass	http://abc;#     }# }# 打开或关闭压缩#gzip  on;# service 位于http内部,用于配置nginx的主机
#     server {
#     # 指定监听的端口
#         listen       80;
#         # 主机名,ip地址或者域名
#         server_name  localhost;
#
# #charset 添加指定字符集到Context-Type头部,它不是定义响应本身的字符集,而是告诉浏览器如何解析响应
#         #charset koi8-r;
# # 如果访问不同的域名或不同的服务器,最好设置不同的日志文件,这样便于查错,如果不使用则是使用Nginx统一的日志,这样查起来太麻烦。
#         #access_log  logs/host.access.log  main;
#
# #
#         location / {
#             root   html;
#             #当用户请求 / 地址时,Nginx 就会自动在 root 配置指令指定的文件系统目录下依次寻找 index.htm 和index.html 这两个文件。
#             #如果 index.htm 文件存在,则直接发起“内部跳转”到 /index.htm 这个新的地址;
#             #而如果 index.htm 文件不存在,则继续检查 index.html 是否存在。如果存在,同样发起“内部跳转”到/index.html;
#             #如果 index.html 文件仍然不存在,则放弃处理权给 content 阶段的下一个模块
#             index  index.htm index.html;
#         }
#
# 	# location /img/ {
#     #     alias /var/www/image/;
#     # }
#     #若按照上述配置的话,则访问/img/目录里面的文件时,ningx会自动去/var/www/image/目录找文件
#
#
#     # location /img/ {
#     #     root /var/www/image;
#     # }
#     #若按照这种配置的话,则访问/img/目录下的文件时,nginx会去/var/www/image/img/目录下找文件。
#
# # 还有一个重要的区别是alias后面必须要用“/”结束,否则会找不到文件的。。。而root则可有可无~
#
#
#         #error_page  404              /404.html;
#
#         # redirect server error pages to the static page /50x.html
#
#         # 配置错误页面,可以在nginx中统一配置,也可以在项目中单独配置
#         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;
#         #}
#     }server {#监听端口listen      80;#编码格式charset utf-8;# 主机名,ip地址或域名中间用逗号分割server_name  39.99.224.141 app.maschinerobot.com;# 读取大型客户端请求头的缓冲区的最大数量和大小large_client_header_buffers 4 16k;#设置nginx能处理的最大请求主体大小。client_max_body_size 1024m;#请求主体的缓冲区大小。client_body_buffer_size 128k;#nginx服务器与被代理的服务器建立连接的超时时间,默认60秒proxy_connect_timeout 600;
#nginx服务器想被代理服务器组发出read请求后,等待响应的超时间,默认为60秒。proxy_read_timeout 600;#nginx服务器想被代理服务器组发出write请求后,等待响应的超时间,默认为60秒。proxy_send_timeout 600;#设置代理服务器(nginx)保存用户头信息的缓冲区大小#设置从被代理服务器读取的第一部分应答的缓冲区大小,通常情况下这部分应答中包含一个小的应答头,默认情况下这个值的大小为指令proxy_buffers中指定的一个缓冲区的大小,不过可以将其设置为更小proxy_buffer_size 64k;#proxy_buffers缓冲区,网页平均在32k以下的设置#设置用于读取应答(来自被代理服务器)的缓冲区数目和大小,默认情况也为分页大小,根据操作系统的不同可能是4k或者8kproxy_buffers   4 32k;#高负荷下缓冲大小(proxy_buffers*2proxy_busy_buffers_size 64k;#设置在写入proxy_temp_path时数据的大小,预防一个工作进程在传递文件时阻塞太长#设定缓存文件夹大小,大于这个值,将从upstream服务器传proxy_temp_file_write_size 64k;# Host的含义是表明请求的主机名,因为nginx作为反向代理使用,而如果后端真实服务器设置有类似防盗链或者根据http请求头中的host字段来进行路由或判断功能的话,如果反向代理层的nginx不重写请求头中的host字段,将会导致请求失败proxy_set_header X-Forwarded-Host $host;proxy_set_header X-Forwarded-Server $host;#X_Forward_For字段表示该条http请求是由谁发起的?如果反向代理服务器不重写该请求头的话,那么后端真实服务器在处理时会认为所有的请求都来在反向代理服务器,如果后端有防攻击策略的话,那么机器就被封掉了proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header Origin "";#用户请求的最终结果是要返回数据,当响应文件在 Nginx 服务器本地时,需要进行本地文件位置、读或写、返回执行结果的操作。Nginx 中的 root 指令可以设定请求 URL 的本地文件根目录,如下表所示。root /opt/muti_wearables/obu-frontend;index index.html index.htm index.nginx-debian.html;location / {try_files $uri $uri/ /index.html;add_header Cache-Control "no-cache,no-store";}# location ~ (^/safetyBrain).* {#       proxy_pass   http://127.0.0.1:8666;#proxy_set_header Host                $host:$server_port;#proxy_set_header X-Forwarded-For     $proxy_add_x_forwarded_for;#proxy_set_header X-Forwarded-Proto   $scheme;#proxy_set_header X-Forwarded-Port    $server_port;#}# 在nginx中配置proxy_pass代理转发时,如果在proxy_pass后面的url加/,表示绝对根路径;如果没有/,表示相对路径,把匹配的路径部分也给代理走# 假设下面四种情况分别用 http://127.0.0.1/proxy/test.html 进行访问。#     location /proxy/ {#         proxy_pass http://127.0.0.1/;#     }#    代理到URL:http://127.0.0.1/test.html#         第二种(相对于第一种,最后少一个 / )
#             location /proxy/ {
#                 proxy_pass http://127.0.0.1;
#             }
#             代理到URL:http://127.0.0.1/proxy/test.html#           第三种:
#             location /proxy/ {
#                 proxy_pass http://127.0.0.1/abc/;
#             }
#             代理到URL:http://127.0.0.1/abc/test.html#           第四种(相对于第三种,最后少一个 / )
#             location /proxy/ {
#                 proxy_pass http://127.0.0.1/abc;
#             }
#             代理到URL:http://127.0.0.1/abctest.htmllocation ~ (^/health).* {proxy_pass   http://127.0.0.1:8866;#proxy_set_header Host                $host:$server_port;}location ~ (^/xxl-job-admin).* {proxy_pass   http://127.0.0.1:8867;#proxy_set_header Host                $host:$server_port;}location ~ (^/jenkin-s).* {proxy_pass   http://127.0.0.1:8899;#proxy_set_header Host                $host:$server_port;}location ~ (^/).* {proxy_pass   http://127.0.0.1:8899;#proxy_set_header Host                $host:$server_port;}}#     server {
#        listen       80;
#        server_name  somename  alias  another.alias;
#
#          location ~ (^/xxl-job-admin).* {
#                 proxy_pass   http://127.0.0.1:8867;
#                 #proxy_set_header Host                $host:$server_port;
#                 }
#     }server {listen       15672;server_name  somename  alias  another.alias;location / {proxy_pass http://localhost:15672/;#    proxy_pass http://localhost:15672/;}}# 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;#    }#}}

2 请解释一下什么是Nginx?

nginx是一个免费的,开源的,高性能http服务器和反向代理服务器,nginx以其高性能,稳定性,丰富的功能和简单的配置而闻名,nginx解决了c10k的问题(一秒内连接客户端一万),nginx也可以作为负载均衡器。内部没有使用线程而是使用一种更高级的方式 事务驱动机制,是一种异步事件驱动结构。

3 请列举Nginx的一些特性

  • 跨平台:可以在大多数Unix like 系统编译运行。而且也有Windows的移植版本。 配置异常简单:非常的简单,易上手。
  • 非阻塞、高并发连接:数据复制时,磁盘I/O的第一阶段是非阻塞的。官方测试能支持5万并发连接,实际生产中能跑2~3万并发连接数(得益于Nginx采用了最新的epoll事件处理模型(消息队列)。
  • Nginx代理和后端Web服务器间无需长连接;
  • Nginx接收用户请求是异步的,即先将用户请求全部接收下来,再一次性发送到后端Web服务器,极大减轻后端Web服务器的压力。 发送响应报文时,是边接收来自后端Web服务器的数据,边发送给客户端。
  • 网络依赖性低,理论上只要能够ping通就可以实施负载均衡,而且可以有效区分内网、外网流量。
  • 支持内置服务器检测。Nginx能够根据应用服务器处理页面返回的状态码、超时信息等检测服务器是否出现故障,并及时返回错误的请求重新提交到其它节点上。
  • 此外还有内存消耗小、成本低廉(比F5硬件负载均衡器廉价太多)、节省带宽、稳定性高等特点。

4 请解释Nginx如何处理HTTP请求。

多进程机制和异步机制
异步机制使用的是异步非阻塞方式 ,接下来就给大家介绍一下 Nginx 的多线程机制和异步非阻塞机制 。
1、多进程机制服务器每当收到一个客户端时,就有 服务器主进程 ( master process )生成一个 子进程( worker process )出来和客户端建立连接进行交互,直到连接断开,该子进程就结束了。使用进程的好处是各个进程之间相互独立,不需要加锁,减少了使用锁对性能造成影响,同时降低编程的复杂度,降低开发成本。其次,采用独立的进程,可以让进程互相之间不会影响 ,如果一个进程发生异常退出时,其它进程正常工作, master 进程则很快启动新的 worker 进程,确保服务不会中断,从而将风险降到最低。缺点是操作系统生成一个子进程需要进行 内存复制等操作,在资源和时间上会产生一定的开销。当有大量请求时,会导致系统性能下降 。
2、异步非阻塞机制每个工作进程 使用 异步非阻塞方式 ,可以处理 多个客户端请求 。当某个 工作进程 接收到客户端的请求以后,调用 IO 进行处理,如果不能立即得到结果,就去 处理其他请求 (即为 非阻塞 );而 客户端 在此期间也 无需等待响应 ,可以去处理其他事情(即为 异步 )。当 IO 返回时,就会通知此 工作进程 ;该进程得到通知,暂时 挂起 当前处理的事务去 响应客户端请求 。

5 使用“反向代理服务器”的优点是什么?

反向代理服务器可以隐藏源服务器的存在和特征。它充当互联网云和web服务器之间的中间层。这对于安全方面来说是很好的,特别是当您使用web托管服务时。

6 在Nginx中,解释如何在URL中保留双斜线?

要在URL中保留双斜线,就必须使用merge_slashes_off;语法:merge_slashes [on/off]默认值: merge_slashes on环境: http,server

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

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

相关文章

.NET CORE 分布式事务(三) DTM实现Saga及高并发下的解决方案

目录(结尾附加项目代码资源地址) 引言&#xff1a; 1. SAGA事务模式 2. 拆分为子事务 3. 失败回滚 4. 如何做补偿 4.1 失败的分支是否需要补偿 5. 异常 6. 异常与子事务屏障 6.1 NPC的挑战 6.2 现有方案的问题 6.3 子事务屏障 6.4 原理 7. 更多高级场景 7.1 部分…

永磁同步电机初始转子位置检测

/// https://zhuanlan.zhihu.com/p/409887456 ///

vue3+threejs新手从零开发卡牌游戏(二十二):添加己方游戏流程(先后手、抽牌、主要阶段、战斗阶段、结束阶段)

首先在utils/common.ts里定义一些流程相关的变量&#xff1a; const flow ref([ // 游戏流程{name: "抽卡阶段"},{name: "主要阶段"},{name: "战斗阶段"},{name: "结束阶段"}])const flowIndex ref(0) // 当前流程const currentPla…

[C++初阶] 爱上C++ : 与C++的第一次约会

&#x1f525;个人主页&#xff1a;guoguoqiang &#x1f525;专栏&#xff1a;我与C的爱恋 本篇内容带大家浅浅的了解一下C中的命名空间。 在c中&#xff0c;名称&#xff08;name&#xff09;可以是符号常量、变量、函数、结构、枚举、类和对象等等。工程越大&#xff0c;名称…

什么是gif? 如何把视频格式转成gif动图格式?展现动图的魅力

一&#xff0c;什么是gif格式 gif是一种位图图形文件格式&#xff0c;主要用于显示索引彩色图像。gif格式在1987年由CompuServe公司开发&#xff0c;它采用LZW&#xff08;Lempel-Ziv-Welch&#xff09;无损压缩算法&#xff0c;这种算法可以有效地减少图像文件在网络上传…

在.Net6中用gdal实现第一个功能

目录 一、创建.NET6的控制台应用程序 二、加载Gdal插件 三、编写程序 一、创建.NET6的控制台应用程序 二、加载Gdal插件 Gdal的资源可以经过NuGet包引入。右键单击项目名称&#xff0c;然后选择 "Manage NuGet Packages"&#xff08;管理 NuGet 包&#xff09;。N…

【C++】 vector 数组/向量

文章目录 【 1. vector 的声明与初始化 】1.1 vector 的声明1.2 vector 的初始化1.2.1 构造一个空的 vector1.2.2 指定数量初值的方式初始化 vector1.2.3 迭代器的方式初始化1.2.4 构造一个相同的 vector 【 2. vector 的相关操作 】2.1 插入元素2.1.1 在vector的末尾插入新元素…

蚂蚁新村3.30答案:“秀女拈针锦线长,纤纤玉指领馨香”说的是哪一项非遗技艺

蚂蚁新村是一个虚拟社区。在这个虚拟社区中&#xff0c;用户可以参与各种活动&#xff0c;比如生产能量豆、做慈善捐赠等。同时&#xff0c;蚂蚁新村也提供了一些知识问答环节&#xff0c;用户在参与的过程中可以增进知识。这些问答内容往往涉及广泛的主题&#xff0c;如文化、…

iOS - Runtime - Class-方法缓存(cache_t)

文章目录 iOS - Runtime - Class-方法缓存(cache_t)1. 散列表的存取值 iOS - Runtime - Class-方法缓存(cache_t) Class内部结构中有个方法缓存&#xff08;cache_t&#xff09;&#xff0c;用散列表&#xff08;哈希表&#xff09;来缓存曾经调用过的方法&#xff0c;可以提高…

tornado上传文件

简介 在 Tornado web 框架中&#xff0c;上传图片通常涉及创建一个表单&#xff0c;让用户选择文件并上传。Tornado 通过其 RequestHandler 类来处理这些请求&#xff0c;你可以重写 post 方法来接收上传的文件。 后端 import os import tornado.ioloop import tornado.web …

Python3:ModuleNotFoundError: No module named ‘elftools‘

问题背景 问题 ModuleNotFoundError: No module named ‘elftools’ 解决方法 pip3 install pyelftools 成功&#xff01;&#xff01;&#xff01;

YPay源支付V7开源版

YPay_V7版本即将停止维护更新&#xff0c;同时我们将开放最新版开源代码供学习和参考。虽然首批阶段的【function_8.1.php文件是加密的】&#xff0c;但授权已经除去&#xff0c;该代码将在新版YPay上线时开放给大家。我们也会定期进行迭代更新&#xff0c;随后将创建对应仓库&…

达梦数据库集成mybatis-plus

先总结 库名&#xff0c;表名和字段名尽量大写。小写必须要使用双引号&#xff0c;不然会报各种问题&#xff0c;包括【语法解析错误】&#xff0c;【无效的列名】如果列名必须小写&#xff0c;那么要自己写mapper.xml。mybatis-plus在操作insert的时候会报【dm.jdbc.driver.D…

【QT学习】1.qt初识,创建qt工程,使用按钮,第一个交互按钮

1.初识qt--》qt是个框架&#xff0c;不是语言 1.学习路径 一 QT简介 &#xff0c;QTCreator &#xff0c;QT工程 &#xff0c;QT的第一个程序&#xff0c;类&#xff0c;组件 二 信号与槽 三 对话框 四 QT Desiner 控件 布局 样式 五 事件 六 GUI绘图 七 文件 八 …

解决 linux 服务器 java 命令不生效问题

在Linux系统中&#xff0c;当你安装Java并设置了JAVA_HOME环境变量后&#xff0c;你可能需要使用source /etc/profile命令来使Java命令生效。这是因为/etc/profile是一个系统级的配置文件&#xff0c;它包含了系统的全局环境变量设置。 但是需要注意的是&#xff0c;source /e…

使用C语言实现Linux下的并发Http服务器

使用C语言实现Linux下的并发Http服务器 文章目录 使用C语言实现Linux下的并发Http服务器先备知识Http协议请求格式&#xff1a;客户端请求服务端响应 Demo 实现Mini的Http服务器流程接收Http请求实现按行读取请求头部请求头部的结束 解析请求响应请求读取文件&#xff08;http需…

品质领航,流量赋能,2024喜尔康浙江省经销商培训会在喜尔康总部成功举行

3月29日&#xff0c;以“新零售、新流量、新风口”为主题的2024喜尔康浙江省经销商培训会在喜尔康总部正式开始举办。活动旨在智能新时代赋能经销商伙伴&#xff0c;通过抓住行业智能化风口&#xff0c;实现喜尔康与经销商的共赢&#xff0c;决胜未来新零售商机。 喜尔康始终致…

Charles for Mac 强大的网络调试工具

Charles for Mac是一款功能强大的网络调试工具&#xff0c;可以帮助开发人员和测试人员更轻松地进行网络通信测试和调试。以下是一些Charles for Mac的主要特点&#xff1a; 软件下载&#xff1a;Charles for Mac 4.6.6注册激活版 流量截获&#xff1a;Charles可以截获和分析通…

【pytest】功能特性及常用插件

pytest是一个功能强大的Python测试框架&#xff0c;它的语法简洁明了&#xff0c;易于学习和使用。同时&#xff0c;它提供了丰富的功能和插件&#xff0c;使得测试过程更加灵活和高效。 功能特性 pytest的主要功能特性包括&#xff1a; 参数化测试&#xff1a;允许使用不同…

nuxt学习

一、遇到的问题 1、nuxt初始化失败问题解决方案 使用npm和pnpm初始化都失败 原因&#xff1a;主机连不上DNS服务器 解决方案 Step1: 打开文件夹 Windows:路径&#xff1a;C:\Windows\System32\drivers\etc Mac: 路径&#xff1a;/etc/hosts Step2: 使用记事本方式打开 …