Web 基础——Nginx(一)(1)

  • 安全防护:Nginx 对自己本身有一定的防护措施。

  • 访问限制:有点类似于 Apache 的 Order deny,allow

  • 访问认证:对所访问网站,进行添加用户名和密码。

2.Nginx 高并发原理


  • Nginx 高并发使用的是 epoll 的方式,提供给用户访问,复制数据的一些操作交由内核完成;

  • 自身做的事情越少接待的用户请求就越多。

epoll 在 Linux 2.6 中增加了内存拷贝 mmap 机制,加速与内核空间的消息传递,即内存映射。

  • 内存映射机制:硬盘中有数据,数据有对应的 inode,在内存中映射一个相同的 inode,大小也相同,下次拿数据不需要遍历 inode,分析路径了。这样提高了效率。

3.CPU 亲和


  • 将 CPU 核心和 Nginx 工作进程绑定,把每个 Worker 进程固定在一个 CPU 上执行,减少切换 CPU 的 cache miss,获得更好的性能。

在这里插入图片描述

二、部署 Nginx 网站服务

==================================================================================

准备工作

| 主机名 | 操作系统 | IP 地址 | 版本号 |

| — | — | — | — |

| Nginx | CentOS 7.4 | 192.168.1.1 | nginx-1.18.0.tar.gz |

1.编译安装 Nginx


  • Nginx 官方:http://nginx.org/

[root@Nginx ~]# wget http://www.nginx.org/download/nginx-1.18.0.tar.gz

[root@Nginx ~]# yum -y install pcre-devel zlib-devel

[root@Nginx ~]# ls

anaconda-ks.cfg nginx-1.18.0.tar.gz

[root@Nginx ~]# tar zxf nginx-1.18.0.tar.gz -C /usr/src/

[root@Nginx ~]# cd /usr/src/nginx-1.18.0/

[root@Nginx nginx-1.18.0]# useradd -M -s /sbin/nologin nginx

[root@Nginx nginx-1.18.0]# ./configure \

–prefix=/usr/local/nginx \

–user=nginx \

–group=nginx \

–with-http_stub_status_module && make && make install

在这里插入图片描述

2.安装后优化调整


[root@Nginx nginx-1.18.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ #创建软链接优化执行路径

[root@Nginx nginx-1.18.0]# cd

[root@Nginx ~]# nginx -v #查看版本

[root@Nginx ~]# nginx #启动Nginx

[root@Nginx ~]# netstat -anpt | grep nginx #查看网络连接状态

在这里插入图片描述

3.编写 Nginx 的启动脚本


[root@Nginx ~]# vim /usr/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=/usr/local/nginx/sbin/nginx -s reload

ExecStop=/usr/local/nginx/sbin/nginx -s stop

PrivateTmp=true

[Install]

WantedBy=multi-user.target

[root@Nginx ~]# nginx -s stop

[root@Nginx ~]# netstat -anpt | grep 80

[root@Nginx ~]# systemctl start nginx

[root@Nginx ~]# netstat -anpt | grep 80

在这里插入图片描述

三、Nginx 优化

=============================================================================

1.配置 CPU 亲和


  • 配置 CPU 亲和能够减少进程之间不断频繁迁移,减少性能损耗。

1)查看当前 CPU 物理状态

[root@Nginx ~]# lscpu | grep “CPU(s)”

2)将 Nginx Worker 进程绑到不同的核心上

  • 指定 CPU 核心来进行绑定:

worker_processes 6;

worker_cpu_affinity 000001 000010 000100 001000 010000 100000;

  • 最佳绑定方式:

worker_processes auto;

worker_cpu_affinity auto;

3)查看 Nginx Worker 进程绑定至对应 CPU

[root@Nginx ~]# ps -eo pid,args,psr | grep [n]ginx

2.Nginx 常见问题


1)Server 优先级

[root@Nginx ~]# mkdir -p /zhangsan/Coco{1…3}

[root@Nginx ~]# for A in {1…3};do echo “

Coco A < / h 1 > " > / z h a n g s a n / C o c o " A</h1>" > /zhangsan/Coco" A</h1>">/zhangsan/Coco"A”/index.html;done

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

http {

include mime.types;

default_type application/octet-stream;

sendfile on;

keepalive_timeout 65;

server {

listen 80;

server_name 192.168.1.1;

location / {

root /zhangsan/Coco1;

index index.html;

}

}

server {

listen 80;

server_name 192.168.1.1;

location / {

root /zhangsan/Coco2;

index index.html;

}

}

server {

listen 80;

server_name 192.168.1.1;

location / {

root /zhangsan/Coco3;

index index.html;

}

}

}

[root@Nginx ~]# nginx -t #检查配置文件是否正确

[root@Nginx ~]# systemctl restart nginx #重启Nginx服务

[root@Nginx ~]# curl http://192.168.1.1

  • 注意:当多个 server_name 一样时,访问的优先级是从上到下。

2)Location 优先级

一个 Server 出现多个 location

| 常用的正则匹配 | 作用 |

| — | — |

| = | 进行普通字符精确匹配,完全匹配 |

| ^~ | 进行普通字符匹配,使用前缀匹配 |

| ~ | 区分大小写匹配 |

| ~* | 不区分大小写匹配 |

  • 优先级为:= ^~ ~ ~*

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

http {

include mime.types;

default_type application/octet-stream;

sendfile on;

keepalive_timeout 65;

server {

listen 80;

server_name 192.168.1.1;

root /zhangsan;

index index.html;

location = /Coco1/ {

rewrite ^(.*)$ /Coco1/index.html break;

}

location ~ /Coco* {

rewrite ^(.*)$ /Coco3/index.html break;

}

location ^~ /Coco {

rewrite ^(.*)$ /Coco2/index.html break;

}

}

}

[root@Nginx ~]# systemctl restart nginx

[root@Nginx ~]# curl http://192.168.1.1/Coco1/

Coco 1

[root@Nginx ~]# curl http://192.168.1.1/Cocooo

Coco 2

[root@Nginx ~]# curl http://192.168.1.1/Coc

Coco 3

  • 注意:完全匹配是必须要完全一样才可以,使用前缀匹配是只要前面一样即可。

3)Try_Files 的使用

  • Nginx 的 Try_Files 能够按顺序检查文件是否存在。

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

http {

include mime.types;

default_type application/octet-stream;

sendfile on;

keepalive_timeout 65;

server {

listen 80;

server_name 192.168.1.1;

root /zhangsan;

index index.html;

location / {

try_files $uri $uri/ /Coco3/index.html;

}

}

}

[root@Nginx ~]# systemctl restart nginx

[root@Nginx ~]# curl http://192.168.1.1/Coco1/

Coco 1

[root@Nginx ~]# curl http://192.168.1.1/Docker/

Coco 3

执行过程:

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后

javascript是前端必要掌握的真正算得上是编程语言的语言,学会灵活运用javascript,将对以后学习工作有非常大的帮助。掌握它最重要的首先是学习好基础知识,而后通过不断的实战来提升我们的编程技巧和逻辑思维。这一块学习是持续的,直到我们真正掌握它并且能够灵活运用它。如果最开始学习一两遍之后,发现暂时没有提升的空间,我们可以暂时放一放。继续下面的学习,javascript贯穿我们前端工作中,在之后的学习实现里也会遇到和锻炼到。真正学习起来并不难理解,关键是灵活运用。

资料领取方式:点击这里免费领取前端全套学习资料

css源码pdf

JavaScript知识点
里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!**

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

[外链图片转存中…(img-iHZqg7BI-1713580700118)]

最后

javascript是前端必要掌握的真正算得上是编程语言的语言,学会灵活运用javascript,将对以后学习工作有非常大的帮助。掌握它最重要的首先是学习好基础知识,而后通过不断的实战来提升我们的编程技巧和逻辑思维。这一块学习是持续的,直到我们真正掌握它并且能够灵活运用它。如果最开始学习一两遍之后,发现暂时没有提升的空间,我们可以暂时放一放。继续下面的学习,javascript贯穿我们前端工作中,在之后的学习实现里也会遇到和锻炼到。真正学习起来并不难理解,关键是灵活运用。

资料领取方式:点击这里免费领取前端全套学习资料

[外链图片转存中…(img-yj0BryVG-1713580700118)]

[外链图片转存中…(img-6kt8bMgE-1713580700118)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值