当前位置:   article > 正文

Nginx 学习_nginx ntlm

nginx ntlm

Nginx安装

  • 下载
wget http://nginx.org/download/nginx-1.16.1.tar.gz
  • 1
  • 解压:
tar -zxvf nginx-1.16.1.tar.gz
  • 1
  • 进入解压目录:
cd nginx-1.16.1
  • 1
  • 安装
./configure --prefix=/opt/nginx --with-http_gzip_static_module --with-http_v2_module --with-openssl=/opt/openssl-1.1.1d --with-http_ssl_module --with-ipv6

# 可以提前输入 ./configure --help 来查看所有选项;
# 带 PATH 的代表安装路径,sbin路径、modules路径、conf路径、prefix安装路径、pid路径
# --with开头 表示安装第三方动态模块,--without开头 表示取消已安装模块;--user 和 --group 代表分配的用户和用户组
  • 1
  • 2
  • 3
  • 4
  • 5
  • 编译、安装:
# 编译
make
# 安装
sudo make install
  • 1
  • 2
  • 3
  • 4
  • 启动
sudo /opt/nginx/sbin/nginx -c /opt/nginx/conf/nginx.conf
# -c 初次启动指定配置文件的路径。不加 nginx会自动加载默认路径的配置文件。
  • 1
  • 2
  • 运行
/opt/nginx/sbin/nginx -h # 显示帮助信息 -v 版本 -V 展示运行参数 (测试:-t -T会列出源文件)-q 安静 -s:signal -p:prefix -c:filename -g:directives
/opt/nginx/sbin/nginx -s reload # 重新加载配置; 
/opt/nginx/sbin/nginx -s reopen # 重新打开日志;等同于 kill -USR1 PID
/opt/nginx/sbin/nginx -s stop # 快速停止;等同于 kill -TERM/INT PID
/opt/nginx/sbin/nginx -s quit # 停止接受请求+处理完后关闭;等同于 kill -QUIT PID
/opt/nginx/sbin/nginx -g "pid logs/nginx.pid" # 添加配置
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • nginx 安装后,可选择添加[nginx.service]:vim /usr/lib/systemd/system/nginx.service
[Unit]
Descripitoin=nginx web service
Doucumentation=http://nginx.org/en/docs/
After=network.target

[Service]
Type=forking
PIDFile=/opt/nginx/logs/nginx.pid
ExecStartPre=/opt/nginx/sbin/nginx -t -c /opt/nginx/conf/nginx.conf
ExecStart=/opt/nginx/sbin/nginx
ExecReload=/opt/nginx/sbin/nginx -s reload
ExecStop=/opt/nginx/sbin/nginx -s stop
PrivateTmp=true

[Install]
WantedBy=default.target
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
# 授权 authorize
chmod 755 /usr/lib/systemd/system/nginx.service
# operator
systemctl start/stop/restart/reload/status/enable nginx
# 其中重载reload,体现在 master 进程号不变,worker进程号修改了
  • 1
  • 2
  • 3
  • 4
  • 5
  • 将nginx命令配置到环境变量
export PATH=$PATH:/opt/nginx/sbin
  • 1
  • kill 命令信号:TERM/INT、 QUIT、 HUP、 USR1、 USR2、 WINCH
  • nginx 卸载
./nginx -s stop && rm -rf /opt/nginx && make clean
# make clean 其实就是清理生成的 Makefile 和 objs/ 文件
  • 1
  • 2

Nginx 目录

  • conf:里面包含一些cgi(Common Gateway Interface)通用网关「接口|程序」相关的配置,还有编码转换相关的文件(koi-utf、koi-win、win-utf)还最后的 nginx 配置文件。
  • html:网页
  • logs:访问日志、错误日志、nginx进程的PID
  • sbin:执行文件

Nginx 多进程运行

  • nginx 是通过多进程的方式运行的:ps -ef |grep nginx

  • nginx 主要有两类进程

    • master(主进程、不处理业务、协调worker进程、校验配置文件)
    • worker(读取conf配置、加载对于资源、解析并响应)
  • 管理员向 master 发送信号,master 向 worker 传递信号;worker 进程和用户进行连接;

  • 重新打开日志文件:kill -USR1 PID;重新读取配置文件并生效 -HUP

  • 优雅关闭整个服务:kill -TERM/INT PID;所有子进程不在接收处理新连接:-WINCH(只关闭worker进程)

  • 平滑升级:kill -USR2 PID # 这样会复制一份,并得到 nginx.pid.oldbin 文件,再继续运行kill -QUIT OLDPID 这样平滑更新就完成了。

  • nginx 使用服务信号升级

# 准备工作
./configure && make && make install # 旧版
./configure && make # 新版
# 备份原有的二进制 nginx 
mv nginx oldnginx
# 更新 nginx 二进制文件
cp ~/nginx-1.17.1/objs/nginx /usr/local/nginx/sbin/
# 复制得到新的进程(根据新的二进制文件运行的进程)
kill -USR2 'more /usr/local/nginx/logs/nginx.pid'
# 退出旧版本
kill -QUIT 'more /usr/local/nginx/logs/nginx.pid.oldbin'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • nginx 使用 make 命令升级
# 准备工作
./configure && make && make install # 旧版
./configure && make # 新版
# 备份原有的二进制 nginx 
mv nginx oldnginx
# 更新 nginx 二进制文件
cp ~/nginx-1.17.1/objs/nginx /usr/local/nginx/sbin/
# 在新版本的根目录下执行
make upgrade
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • nginx 更新模块
# 查看之前安装的模块有哪些(需要添加到后面)
nginx -V
# 清理
make clean
# 模块更新
./configure --without.... --with...
# 编译
make
# 更新
mv objs/nginx /opt/nginx/sbin/ && make upgrade
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

Nginx 核心配置

  • 配置文件 /usr/local/nginx/conf/nginx.conf 由三大块组成;
    • 全局块:http 和 events 之外的配置都是全局(指令名:指令值;既 -g 可以加的配置)
    • events 块:与用户网络连接相关的内容,性能相关。如 use epoll;
    • http 块:可以配置多个 server 块(端口+主机名+location块+error_page)
# worker 进程的用户,可以 useradd www,然后设置为www(会添加一个/home/www/目录方便配置)
user www;
# 是否开启工作进程,主要用于测试,需要重启,只留一个nginx进程(不区分master worker)
master_process off; # default on;
# 开启多少个worker进程,实现并发。适合为cpu物理内核数,超了会分时(也可以叫业务进程)
worker_processes auto;
# 是否以守护进程启动
daemon off; # default on;
# pid 文件路径
pid file;
# 错误日志存放路径(不记录访问请求),还包括日志级别:debug info notice warn error crit alert emerg
error_log file error; # 不建议 info 以下级别,会有大量 I/O

# 事件驱动模块
events {
  # 单个worker进程最大连接数;不能大于系统支持的最大文件句柄数
  worker_connections  1024;
  # 网络连接序列化,解决 “惊群” 问题(一根
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/733346
推荐阅读
相关标签