Nginx入门:
一、服务器
1、CentOS
2、Ubantu
二、FTP工具
1、FileZilla(Win)
2、ForkLift(Mac)
公网IP
三、连接方式
1、远程连接
2、xshell
3、terminal
```
ssh root@127.0.0.1
输入密码
修改know_hosts
```
四、包管理器
OS 文件格式 工具
1、Ubuntu .deb apt,apt-cache,apt-get,dpkg
2、CentOS .rpm yum
五、
1、更新所有包
apt-get
同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引
apt-get update
2、安装nginx
apt-get install nginx
3、查看进程
ps aux | grep nginx
process /usr/sbin/nginx -g daemon on; master-process on;
4、访问公网IP,验证nginx是否安装ok
ls -l /etc/nginx 默认安装路径
六、nginx
1、安装
2、配置自启动
3、systemd打开关闭nginx
4、nginx.conf配置
5、远程拷贝
6、linux中权限管理
7、前台项目nginx部署
8、****sh编写启动脚本
9、配置启动、重加载命令的脚本地址
nginx -t 预启动,检查nginx状态
systemctl restart nginx 重启nginx服务,重操作
systemctl reload nginx 使配置信息生效,推荐
10、curl命令
eg: curl -I www.baidu.com
curl -I www.baidu.com > index.html
curl -I -H "Accept-Encoding:gzip,deflate" https://hectorstatic.baidu.com/cd37ed75a9387c5b.js?_=1614424501009
11、配置不同文件的MIME类型
http {
types {
text/html html;
text/css css;
}
include mime.types
}
/etc/nginx/mime.types
11、return and rewrite
rewrite ^/user/(w+) /greet/$1
12、echo '' > access.log
echo '' > error.log
13、处理php文件
location ~\.php$ {
include fastcgi.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
14、配置工作进程
ps aux | grep nginx
worker_processes auto;
nproc // 查询系统核数
ulimit -n 查询最大可打开文件数
events {
worker_connections 65535
}
// 最大并发数 = 工作进程 * 最大可打开文件数
15、性能调优-缓冲
// 设定request body的缓存大小,如果超过阈值,那么整个body或者部分body将会被写入一个临时文件,nginx如果使用文件缓冲,则此配置无效
32位系统默认8K, 64位默认16K
client_body_buffer_size 10K;
// 设定Nginx可以处理的最大request body大小。如果收到的请求大于阈值,Nginx会回复HTTP 413错误
(Request Entity too large),如果web服务器提供大文件上传的话,最好设置这个指令,Nginx默认大小为1M
client_max_body_size 8m;
// 类似client_body_buffer_size 它给request_header分配缓存,默认1K
client_header_buffer_size 1K;
16、性能调优-超时
// 客户端与服务器建立连接后发送request body的超时时间,如果超过阈值未发送任何内容,Nginx返回HTTP 408错误,默认为60s
client_body_timeout 12;
client_header_timeout 12;
// 设置keepalive连接的超时时间,默认为65秒,若将它设置为0,就禁止了keepalive连接
keepalive_timeout 15;
// 指定向客户端传输数据的超时时间,默认为60秒
send_timeout 10;
// 开启文件高效传输模式
sendfile on;
// 防止网络及磁盘I/O阻塞,提升Nginx工作效率
tcp_nopush on;
17、动态模块
需要单独引入
18、gzip压缩
gzip on;
gzip_comp_level 3; #1~9
gzip_types text/css text/javascript; # 进行压缩的文件类型
19、HTTPS配置
# 生成秘钥
openssl req -x509 -nodes -days 10 -newkey rsa:2048 -keyout /etc/ngnx/ssl/self.key -out /etc/nginx/ssl/self.crt
listen: 443 ssl;
# 配置证书
ssl_certificate /etc/nginx/ssl/self.crt
ssl_certicate_key /etc/nginx/ssl/self.key
20、跳转安全链接
21、server push
location
22、基础授权
23、反向代理
24、负载均衡
测试:while sleep 0.5: do curl http://localhost:8000;done
# 配置服务器组
upstream node_servers {
server localhost:5001;
server localhost:5002;
server localhost:5003;
}
server {
listen 8888;
location / {
# 反向代理到服务器组
proxy_pass http://node_servers;
}
}
25、永久开启node服务
npm install forever -g
forever start index.js
or
npm install pm2 -g
二、HTTP2(2015) HTTP1.1(1999)
1、二进制分帧
2、多路复用
单路链接可以承载多路数据流
3、头部压缩
4、服务器推送