Nginx网络服务

news2024/11/24 9:05:21

目录

1.Nginx基础

1.Nginx和Apache的差异

2.Nginx和Apache的优缺点比较

3.编译安装nginx服务

2.认识Nginx服务的主配置文件 nginx.conf 

1.全局配置

2.I/O事件配置

3.HTTP设置

4.访问状态统计配置

5.基于授权密码的访问控制

6.基于客户端的访问控制

7.基于域名的nginx 虚拟主机

8.基于IP地址

9.基于端口


1.Nginx基础

     (1)一款高新能、轻量级Web服务软件;

     (2)稳定性高;

     (3)系统资源消耗低;

     (4)对HTTP并发连接的处理能力高;

     (5)单台物理服务器可支持30 000~50 000个并发请求。

1.Nginx和Apache的差异

轻量级,Nginxt比Apache占用更少的内存及资源:
静态处理,Nginx静态处理性能比Apache高;
Nginx可以实现无缓存的反向代理加速,提高网站运行速度;
Nginx支持热部署,启动速度迅速,可以在不间断服务的情况下,对软件版本或者配置进行升级;
Nginx高度模块化,编写模块相对简单,且组件比Apache少;
高并发下Nginx能保持低资源低消耗高性能;
Nginx是异步进程,多个连接可以对应一个进程;Apache是同步多进程,一个连接对应一个进程;
Nginx的性能和可伸缩性不依赖于硬件,Apache依赖于硬件;
Nginx配置简洁,Apache配置复杂。

  2.Nginx和Apache的优缺点比较

(1)nginx相对于apache的优点∶

 轻量级,同样起web服务,比Apache占用更少的内存及资源。 高并发,Nginx处理请求是异步非阻塞的,而Apache是阻塞型的在高并发下,Nginx能保持低资源低消耗高性能。
高度模块化的设计;
编写模块相对简;
社区活跃,各种高性能模块出品速度。

(2)apache相对于nginx的优点∶

 rewrite比nginx的rewrite强大;模块多,基本想到的都可以找到;少bug, Nginx的bug相对较超稳定存在就是理由,一般来说,需要性能的web服务,用Nginx。如果不需要性能只求稳定,那就Apache。Nginx处理动态请求是弱项,一般动态请求要Apache去做,Nginx只适处理静态网页或反向代理。

3.编译安装nginx服务

   1.关闭防火墙

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost ~]# setenforce 0

2.安装依赖包

     nginx的配置及运行需要pcre、zlib等软件包的支持,因此需要安装这些软件的开发包,以便提供相应的库和头文件。

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

3.创建运行用户、组

     Nginx 服务程序默认以 nobody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限

useradd -M -s /sbin/nologin nginx

4.将安装nginx所需的软件包传到/opt目录下并解压

cd /opt/
wget http://nginx.org/download/nginx-1.18.0.tar.gz
#官网下载安装包

5.编译安装Nginx

配置

tar xf nginx-1.18.0.tar.gz 
cd nginx-1.18.0/
#解压软件包
mkdir /apps/nginx -p


./configure --help   
#查看帮助模块

./configure --prefix=/apps/nginx \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-pcre \
--with-stream \
--with-stream_ssl_module \
--with-stream_realip_module

 编译安装

[root@localhost nginx-1.18.0]# make && make install

6.修改权限和生成四个文件

chown -R nginx.nginx /apps/nginx
#修改权限

ll /apps/nginx/
total 0
drwxr-xr-x 2 root root 333 Sep 22 12:49 conf
drwxr-xr-x 2 root root  40 Sep 22 12:49 html
drwxr-xr-x 2 root root   6 Sep 22 12:49 logs
drwxr-xr-x 2 root root  19 Sep 22 12:49 sbin

######安装好后生成四个文件

7.优化路径

[root@localhost local]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
创建软连接 方便系统识别

8. 检查、启动、重启、停止Nginx服务

nginx -t								#检查配置文件是否配置正确
nginx							        #启动		
#停止
cat /usr/local/nginx/logs/nginx.pid		#先查看nginx的PID号
kill -3 <PID号>
或者				    
killall -3 nginx
killall -s QUIT nginx
------------------------------------------------
#重载
kill -1 <PID号>					
kill -s HUP <PID号>
killall -1 nginx
killall -s HUP nginx
-----------------------------------------------
#日志分隔,重新打开日志文件
kill -USR1 <PID号>
-----------------------------------------------
#平滑升级
kill -USR2 <PID号>
------------------------------------------------
新版本升级
tar -zxvf nginx-1.xx.xx.tar.gz
cd nginx-1.xx.xx
./configure \
-prefix=/usr/local/ngink \
-user=nginx\
-group=nginx \
-with-http stub_status _module\
-with-http_ssl_module
 
make
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old
cp objs/nginx /usr/local/nginx/sbin/nginx
make upgrade
#或者先killall nginx,再/usr/local/nginx/sbin/nginx

9.添加 Nginx 系统服务

vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
 
chmod 754 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.service
-----------------------------------------------------
[Unit]:服务的说明
Description :描述服务
After:依赖,当依赖的服务启动之后再启动自定义的服务
 
[service]服务运行参数的i设置
Type=forking是后台运行的形式,使用此启动类型应同时指定
PIDFile=,以便systemd能够跟踪服务的主进程。Execstart为服务的具体运行命令
ExecReload为重启命令
Execstop为停止命令
PrivateTrmp=True丧示给服务分配独立.的临时空间
注意:启动、重启、停止命令全部要求使用绝对路径
 
[Insta11]服务安装的相关设置,可设置为多用户

 

2.认识Nginx服务的主配置文件 nginx.conf 

配置文件包含的内容

全局块:全局配置,对全局生效;
events块:配置影响Nginx服务器与用户的网络连接;
http块:配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置;
server块:配置虚拟主机的相关参数,一个http块中可以有多个server块;
location块:用于配置匹配的uri;
upstream:配置后端服务器具体地址,负载均衡配置不可或缺的部分。

vim /apps/nginx/conf/nginx.conf 

 

1.全局配置

#user nobody;     #运行用户,若编译时未指定则默认为 nobody
worker_ processes 1;   #工作运行数量,一般设置为和CPU核数一样
#error_log logs/error.log;  #错误日志文件的位置
#pid logs/nginx.pid;   #PID文件的位置

 

2.I/O事件配置

  

events {
    use epoll;                 #使用 epoll 模型以提高性能,2.6 以上版本建议使用
    worker_connections  1024;   #每个进程处理1024个连接
}

允许 Nginx 正常提供服务的连接数并发量):工作进程数为 1,每个进程处理 1024 个连接,则为cpu核数*连接数(1*1024=1024)

1.如提高每个进程的连接数还需执行"ulimit -n 65535"命令临时修改本地每个进程可以同时打开的最大文件数。
2.在Linux平台.上,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。
3.可使用ulimit -a命令查看系统允许当前用户进程打开的文件数限制。

4.epoll(socket描述符)是Linux内核为处理大批量文件描述符而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率.

 内核优化:

vim /etc/security/limits.conf 

 

3.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  logs/access.log  main;
	##开启文件传输模式
    sendfile        on;
 	##减少网络报文段的数量
    #tcp_nopush     on;
	##连接保持超时时间,单位是秒
    #keepalive_timeout  0;  #不开启长连接
    keepalive_timeout  65;
	##gzip模块设置,设置是否开启gzip压缩输出
    #gzip  on;
##Web 服务的监听配置
server {
	##监听地址及端口
	listen 80; 
	##站点域名,可以有多个,用空格隔开
	server_name localhost;
	##网页的默认字符集
	charset utf-8;
	##根目录配置
	location / {
	
		##网站根目录的位置/usr/local/nginx/html
		root html;
	
		##默认首页文件名
		index index.html index.htm;
	}
 
	##内部错误的反馈页面
	error_page 500 502 503 504 /50x.html;
	##错误页面配置
	location = /50x.html {
		root html;
	}
}
}

日志格式设定∶ $remote_addr与$http x forwarded for用以记录客户端的ip地址; $remote user∶ 用来记录客户端用户名称; $time local∶ 用来记录访问时间与时区;$request∶用来记录请求的url与http协议; $status∶ 用来记录请求状态;成功是200, $body bytes sent ∶ 记录发送给客户端文件主体内容大小; $http referer∶ 用来记录从哪个页面链接访问过来的; $http user agent∶记录客户浏览器的相关信息;

通常web服务器放在反向代理的后面,这样就不能获取到客户的IP地址了,通过Sremote_add拿到的IP地址是反向代理服务器的iP地址。反向代理服务器在转发请求的http头信息中,可以增加x_forwarded_for信息,用以记录原有客户端的IP地址和原来客户端的请求的服务器地址。

location常见配置指令, root、alias、proxy_ pass root (根路径配置)∶ 请求ww.clj.com/test/1.jpg,会返回文件/usr/local/nginx/html/test/1.jpg alias (别名配置)∶请求www.clj.com/test/1.jpg,会返回文件/usr/local/nginx/html/1.jpg proxy_pass (反向代理配置)∶ proxy_pass http://127.0.0.1:8080/; ------------- 会转发请求到http∶//127.0.0.1∶8080/1.jpg proxy_pass http://127.0.0.1:8080; --------------会转发请求到http∶//127.0.0.1∶8080/test/1.jpg

4.访问状态统计配置

      1.nginx 内置了 HTTP_STUB_STATUS 状态统计模块,用来反馈当前的 Web 访问情况, 配置编译参数时可添加--with-http_stub_status_module 来启用此模块支持,可以使用命令

     2.可以使用命令/usr/local/nginx/sbin/nginx –v 查看已安装的 Nginx 是否包含 HTTP_STUB_STATUS 模块。

3.操作步骤:

  (1)修改 nginx.conf 配置文件,指定访问位置并添加 stub_status 配置(修改之前进行备份)

#先拷贝一份配置文件
[root@localhost conf]#cp /usr/local/nginx/conf/nginx.conf nginx.conf.bak
 
#  修改 nginx.conf 配置文件
[root@localhost conf]#vim /usr/local/nginx/conf/nginx.conf
 
events {
    use epoll;
    worker_connections  1024;
}
 
    server {
        listen       80;
        server_name  www.yxp.com;
 
 
        charset utf-8;
      location / {
            root   html;
            index  index.html index.htm;
        }
 
        location /status {  ##访问位置为/status
            stub_status on;  ##打开状态统计功能
            access_log off;  ##关闭此位置的日志记录
        }

 

 

(2)在网页中输入 192.168.156.10/status 测试

Active connections: 2 
server accepts handled requests
 2 2 4 
Reading: 0 Writing: 1 Waiting: 1 

Active connections: 2 #当前活动链接数 server accepts handled requests 6 6 5 #表示已经处理的连接信息,三个数字一次表示已处理的连接数、成功的TCP握手次数、已处理的请求数 Reading: 0 Writing: 1 Waiting: 1

(3)结合awk来写shell脚本,如果链接数过高报警

#/bin/bash
a=$(curl 192.168.156.10/status)
b=$(echo $a|awk '{print $3}')
if [ $b -ge 1000 ]
then 
echo "连接数过高"|mail -s test 2094113933@qq.com
else
echo "运行良好"
fi

5.基于授权密码的访问控制

 (1) 生成用户密码认证文件

#安装工具
[root@localhost conf]#yum install -y httpd-tools.x86_64 
 
#如果没有密码则设置
[root@localhost conf]#htpasswd -c /usr/local/nginx/passwd.db zhangsan
#第二次不用加-c
[root@localhost conf]#htpasswd /usr/local/nginx/passwd.db lisi
[root@localhost conf]#chown nginx /usr/local/nginx/passwd.db
[root@localhost conf]#chmod 400 /usr/local/nginx/passwd.db

 

(2)修改主配置文件相应的目录

        location /status { 
           #添加密码认证
           auth_basic "secret";
           auth_basic_user_file /usr/local/nginx/passwd.db;
           
           # stub_status on;
           # access_log off;
            root   html;
            index  index.html index.htm;
        }

 

(3)重启服务

[root@localhost conf]#nginx -t
[root@localhost conf]#systemctl restart nginx.service 

(4)在网页测试

http://192.168.156.10需要输入账号和设置的密码才能登录

6.基于客户端的访问控制

1.基于客户端的访问控制简介 基于客户端的访问控制是通过客户端 IP 地址,决定是否允许对页面访问。Nginx 基于 客户端的访问控制要比 Apache 简单,规则如下: 1)deny IP/IP 段:拒绝某个 IP 或 IP 段的客户端访问。 2)allow IP/IP 段:允许某个 IP 或 IP 段的客户端访问。 3)规则从上往下执行,如匹配则停止,不再往下匹配。

(1)修改配置文件

[root@localhost conf]#vim /usr/local/nginx/conf/nginx.conf
  location / {
            #auth_basic "secret";
            #auth_basic_user_file /usr/local/nginx/passwd.db;
            deny 192.168.156.110;                      ###客户端IP
            allow all;
            root   html;
            index  index.html index.htm;
        }

 

(2) 重启服务,网页测试

 

 

7.基于域名的nginx 虚拟主机

利用虚拟主机,不用为每个要运行的网站提供一台单独的 Nginx 服务器或单独运行一 组 Nginx 进程,虚拟主机提供了在同一台服务器,同一组 Nginx 进程上运行多个网站的功 能。跟 Apache 一样,Nginx 也可以配置多种类型的虚拟主机,分别是基于 IP 的虚拟主机、 基于域名的虚拟主机、基于端口的虚拟主机。 使用 Nginx 搭建虚拟主机服务器时,每个虚拟 Web 站点拥有独立的“server{}”配置段, 各自监听的 IP 地址、端口号可以单独指定,当然网站名称也是不同的。

(1)为虚拟主机创建文档

[root@localhost html]#mkdir -p /var/www/html/{yxp,accp}
[root@localhost html]#echo "<h1>www.yxp.com</h1>" > /var/www/html/yxp/index.html
[root@localhost html]#echo "<h1>www.accp.com</h1>" > /var/www/html/accp/index.html

(2) 修改配置文件

vim /usr/local/nginx/conf/nginx.conf
 
    server {
        listen       80;
        server_name  www.accp.com;
 
        charset utf-8;
 
        access_log  logs/www.accp.access.log;
 
        location / {
            root   /var/www/html/accp;
            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   html;
        }
}
 
    server {
        listen       80;
        server_name  www.yxp.com;
 
        charset utf-8;
 
        access_log  logs/yxp.access.log;
 
        location / {
            root   /var/www/html/yxp;
            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   html;
        }
}

 

 

(3)重启服务,并测试

此时域名无法使用,需要修改/etc/hosts配置文件

C:\Windows\System32\drivers\etc\hosts

 

 

 

8.基于IP地址

  1.修改配置文件

 

[root@localhost html]#vim /usr/local/nginx/conf/nginx.conf
server {
        listen   192.168.156.10:80;
        server_name  www.yxp.com;
        
        
server {
        listen   192.168.156.110:80;
        server_name  www.accp.com;

9.基于端口

[root@localhost html]#vim /usr/local/nginx/conf/nginx.conf
server {
        listen   192.168.156.10:80;
        server_name  www.yxp.com;
        
        
server {
        listen   192.168.156.110:8080;
        server_name  www.accp.com;

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

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

相关文章

SpringCloud简单介绍

文章目录1. 开源组件2. CAP原则1. 开源组件 功能springcloud netflixspringcloud alibabaspringcloud官方其他服务注册与发现eurekanacosconsulzookeeper负载均衡ribbondubbo服务调用openFeigndubbo服务容错hystrixsentinel服务网关zuulgateway服务配置的同一管理cofig-server…

图论初入门

目录 一、前言 二、图的概念 三、例题及相关概念 1、全球变暖&#xff08;2018年省赛&#xff0c;lanqiao0J题号178&#xff09; 2、欧拉路径 3、小例题 4、例题&#xff08;洛谷P7771&#xff09; 一、前言 本文主要讲了树与图的基本概念&#xff0c;图的存储、DFS遍历…

pytorch训练第一个项目VOC2007分割

一、环境 condapytorch1.2.0cuda10.0pycharm 二、训练内容 数据集&#xff1a;VOC2007 网络&#xff1a;U-net 功能&#xff1a;分割图像分类 三、步骤 安装软件、框架、包、cuda&#xff08;不安用cpu跑也可以&#xff09;&#xff0c;下载数据集、代码、权重文件等。。…

测试外包干了5年,感觉自己已经废了····

前两天有读者想我资讯&#xff1a; 我是一名软件测试工程师&#xff0c;工作已经四年多快五年了。现在正在找工作&#xff0c;由于一直做的都是外包的项目。技术方面都不是很深入&#xff0c;现在找工作都是会问一些&#xff0c;测试框架&#xff0c;自动化测试&#xff0c;感…

Java Map和Set

目录1. 二叉排序树(二叉搜索树)1.1 二叉搜索树的查找1.2 二叉搜索树的插入1.3 二叉搜索树的删除&#xff08;7种情况&#xff09;1.4 二叉搜索树和TreeMap、TreeSet的关系2. Map和Set的区别与联系2.1 从接口框架的角度分析2.2 从存储的模型角度分析【2种模型】3. 关于Map3.1 Ma…

QML键盘事件

在QML中&#xff0c;当有一个按键按下或释放时&#xff0c;会产生一个键盘事件&#xff0c;将其传递给获得有焦点的QML项目&#xff08;讲focus属性设置为true&#xff0c;则获得焦点&#xff09;。 按键处理的基本流程&#xff1a; Qt接收密钥操作并生成密钥事件。如果 QQuic…

keepalived学习记录:对其vip漂移过程采用gdb跟踪

对其vip漂移过程采用gdb跟踪keepalived工具主要功能产生vip漂移过程两种情况gdb调试常用命令gdb调试时打到的函数栈&#xff08;供学习参考&#xff09;函数栈的图是本人理解下画的&#xff0c;不对请多指正 keepalived主要有三个进程&#xff0c;父进程是core进程&#xff0c;…

python编程:查找某个文件夹下所有的文件,包括子文件加下的所有文件,读取指定类型的文件

目录 一、实现要求 二、代码实现 三、效果测试 一、实现要求 1、在电脑上有一个文件夹&#xff0c;该文件夹下面还有子文件夹&#xff0c;具体层级不清楚&#xff0c;需要实现将该文件夹下所有的文件路径读取出来&#xff1b; 2、在1的基础上&#xff0c;只需读取指定类型的文…

论文复现-2:代码部分

以CONLL03数据集为例 文章目录1 整体框架2 数据结构2.1 原始数据集2.2 处理之后的数据集3 代码部分3.0 模型参数3.1 数据预处理3.2 模型方法3.1.1 定义表示的学习权重项的学习双塔模型3.2.2 forward3.3 损失函数3.4 训练与推理Ablation study训练实例1 整体框架 任务是实体识别…

MVVM模式下如何正确【视图绑定+数据】

概述 我如何&#xff08;不在后面的代码中使用代码&#xff09;自动绑定到我想要的视图&#xff1f;据我了解&#xff0c;如果正确完成&#xff0c;这就是模式应该如何工作。我可以使用主窗口 xaml 中的代码实现这一切&#xff0c;我甚至正确创建了一个资源字典&#xff08;因…

python Pytest生成alluer测试报告的完整教程

1.下载allure包到本地&#xff0c;解压 网上很多资料&#xff0c;这边不提供了 2.配置环境变量 将上面解压后bin文件的路径复制&#xff0c;添加到环境变量Path下 3.验证环境变量配置是否功 在cmd中输入allure&#xff0c;回车 。查看allure是否成功&#xff1a; 4.pyc…

Spring Boot 整合Redis使用Lua脚本实现限流

目录一、简介二、maven依赖三、编码实现3.1、配置文件3.2、配置类3.3、注解类3.4、切面类3.5、lua脚本3.6、自定义异常和全局异常3.7、控制层四、验证4.1、单用户限流4.2、接口限流结语一、简介 本篇文章主要来讲Spring Boot 整合Redis使用Lua脚本实现限流&#xff0c;实现限流…

Lsof命令介绍

LSOF&#xff08;List Open Files&#xff09;是一款功能强大的开源工具&#xff0c;用于列出当前系统上打开的文件和进程。该工具可以帮助系统管理员和开发人员快速查找正在使用某个文件的进程&#xff0c;以及在系统上使用磁盘空间最多的进程。 本文将介绍LSOF的基本用法和常…

计算机网络自检

1 计网体系结构 因特网结构&#xff1a; 计网三个组成成分&#xff1a; 工作方式-其中2个部分&#xff1a; 功能-两个子网&#xff1a; 5个XAN分别是&#xff1a; 传输技术&#xff0c;两者的主要区别&#xff1a; 4种基本网络拓扑结构&#xff1a; 3种交换技术&#xff1a; 协…

南卡NEO骨传导首发新机,超前无线充设计,树立行业标杆!!!

​3月2号&#xff0c;更专业的骨传导运动耳机——南卡&#xff0c;发布了以轻运动为全新方向系列的南卡NEO&#xff0c;通过迭代升级的声学技术进一步的优化了音质&#xff0c;打造更强一代的音质体验。 音质全新升级&#xff0c;分”響“全新体验 一直以来南卡专业的实验团队…

计算机网络第5章(运输层)学习笔记

❤ 作者主页&#xff1a;欢迎来到我的技术博客&#x1f60e; ❀ 个人介绍&#xff1a;大家好&#xff0c;本人热衷于Java后端开发&#xff0c;欢迎来交流学习哦&#xff01;(&#xffe3;▽&#xffe3;)~* &#x1f34a; 如果文章对您有帮助&#xff0c;记得关注、点赞、收藏、…

linux环境创建anaconda虚拟环境安装tensorflow-gpu版本

linux环境创建anaconda虚拟环境安装tensorflow-gpu版本1.找到相应版本2.下载步骤2.1选择下载版本2.2 创建虚拟环境2.3 进入虚拟环境2.5 更新三个包2.6 安装tensorflow和keras2.7 验证是否安装成功2.8 检验GPU是否可用2.9 测试代码3.成功&#xff0c;终于成功了&#xff01;&…

spring-boot rabbitmq整合

文章请参考&#xff1a;Springboot 整合RabbitMq &#xff0c;用心看完这一篇就够了 mven依赖 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></depende…

张大大直播爆火?跨境电商直播能从中学到什么

最近这个张大大的直播间确实很火哈&#xff0c;连龙哥这个不怎么看娱乐新闻的也经常刷到。龙哥专门去看了几次张大大的这个直播&#xff0c;确实有点东西。每场都可以做到这么高流量着实是不容易。龙哥就凭借自己一些电商直播经验&#xff0c;给大家总结一下&#xff0c;我们可…

年薪20W软件测试工程师必备的6大技能(建议收藏)

软件测试 随着软件开发行业的日益发展&#xff0c;岗位需求量和行业薪资都不断增长&#xff0c;想要入行的人也是越来越多&#xff0c;但不知道从哪里下手&#xff0c;今天&#xff0c;就给大家分享一下&#xff0c;软件测试行业都有哪些必会的方法和技术知识点&#xff0c;作…