Nginx入门

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、服务器推送

原文地址:https://www.cnblogs.com/nanhuaqiushui/p/15058205.html