Nginx
# 前言
正向代理:类似一个跳板机,由代理客户端去请求服务器。比如:我是一个用户,我访问不了某网站,但是我能访问一个代理服务器,这个代理服务器,它能访问那个我不能访问的网站,于是我先连上代理服务器,告诉它我需要那个无法访问网站的内容,代理服务器去取回来,然后返回给我。
反向代理(Reverse Proxy):以代理服务器来接受 internet 上的连接请求,然后转发各内部网络上的服务器并将从服务器上得到的结果返回给 internet 上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
两者的区别:正向代理代理的对象是客户端,反向代理代理的对象是服务端
🔜💡正向代理与反向代理通俗解释 (opens new window)
# nginx 的优点
- 高并发。静态小文件
- 占用资源少。2万并发、10个线程,内存消耗几百M。
- 功能种类比较多。web,cache,proxy。每一个功能都不是特别强。
- 支持epoll模型,使得nginx可以支持高并发。
- nginx 配合动态服务和Apache有区别。(FASTCGI 接口)
- 利用nginx可以对IP限速,可以限制连接数。
- 配置简单,更灵活。
# nginx 应用场合
- 静态服务器。(图片,视频服务)另一个lighttpd。并发几万,html,js,css,flv,jpg,gif等。
- 动态服务。
- 反向代理,负载均衡。日pv2000W以下,都可以直接用nginx做代理。
- 缓存服务。类似 SQUID,VARNISH。
# nginx 安装
这里使用⛳️ docker (opens new window) 容器快速安装,省去了许多繁琐的配置,便于我们更快的掌握 nginx 的使用。
docker run nginx:1.18
1
点击查看
sudo docker run --name nginx -d -p 80:80 \
-v /opt/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /opt/nginx/logs:/var/log/nginx \
-v /opt/nginx/conf.d/:/etc/nginx/conf.d \
-v /opt/nginx/html:/usr/share/nginx/html \
-d nginx:1.18
1
2
3
4
5
6
2
3
4
5
6
- docker 进入 nginx 容器内部
docker exec -it 容器id /bin/bash
# nginx 常用命令
nginx -t # 验证配置是否正确:
nginx -V # 查看详细的版本号
nginx -v # 查看简洁版本号
start nginx # 启动
nginx -s stop # 快速停止或关闭
nginx -s quit # 正常停止或关闭
nginx -s reload # 配置文件修改重装载命令
1
2
3
4
5
6
7
2
3
4
5
6
7
# nginx 监控
开启状态页
# 在http块内添加 server{ listen 80; server_name localost; #设定查看Nginx状态的地址 location /NginxStatus { stub_status on; access_log off; # auth_basic "Please input password"; # auth_basic_user_file conf.d/pwd; } }
1
2
3
4
5
6
7
8
9
10
11
12stub_status
: (on/off) 表示开启 stubStatus 的工作状态统计功能。access_log
: (on/off) 关闭 access_log 日志记录功能。auth_basic
: nginx 的一种认证机制,后面是验证时的提示信息。auth_basic_user_file
: 用来指定密码文件的位置。
访问:
curl http://127.0.0.1/NginxStatus
Active connections: 2 server accepts handled requests 2 2 5 Reading: 0 Writing: 1 Waiting: 1
1
2
3
4Active connections
: 活跃的连接数量server accepts handled requests
: 总共处理了2个连接 , 成功创建2次握手, 总共处理了5个请求Reading
: 读取客户端的连接数.Writing
: 响应数据到客户端的数量Waiting
: 开启 keep-alive 的情况下,这个值等于 active – (reading+writing), 意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接.
配置登录密码
# 安装 htpasswd sudo yum install -y httpd-tools # 设置用户名和密码,并把用户名、密码保存到指定文件中 sudo htpasswd -c pwd mynginx # 保存文件名 用户名 # 按提示输入两次密码 # 查看密码(加密后)/opt/nginx/ [root@iZwz pwd]$ cat pwd mynginx:$apr1$RH3sT.3F$DKYdWYHZGWEajsj.fjHbU.
1
2
3
4
5
6
7
8
9最后将上面注释打开
auth_basic
,auth_basic_user_file
,重启 nginx
#
🍖 参考
上次更新: 2022/04/01, 15:14:40