1 下载
2 Windows安装
2.1 环境介绍
-
下载完成后解压缩
-
目录如下
-
配置文件地址:
.\nginx-1.23.2\conf\nginx.conf
,默认配置的nginx监听的端口为80
2.2 确认端口是否被占用
-
启动服务前先查看80端口是否被占用,如果占用则关闭对应进程或者修改nginx默认端口
# cmd黑窗口输入如下命令查看端口占用情况(有显示则代表被占用了,无返回内容则未被占用) netstat -ano | findstr 0.0.0.0:80
-
杀掉进程
taskkill /pid 20112 -F
2.3 启动nginx服务
.\nginx.exe
2.4 关闭nginx服务
-
快速停止(不推荐使用:使用nginx -s stop时,会删除logs中的nginx.pid文件)
.\nginx.exe -s stop
-
有序停止(推荐使用:使用nginx -s quit时,也会删除logs中的nginx.pid文件))
.\nginx.exe -s quit
-
使用taskkill关闭:(按需使用:不会删除logs中的nginx.pid文件)
taskkill /f /t /im nginx.exe
3 Linux安装
3.1 环境检查(历史是否安装)
-
检测进程
# 检索出带有nginx的进程 ps -ef |grep nginx # 或者直接列出nginx相关的pid ps -C nginx -o pid
-
停掉开机自启
# 停掉自启 chkconfig nginx off
-
关掉nginx服务
# 等待工作进程处理完成后关闭 nginx -s quit
-
确认是否还有nginx进程并杀掉
# 查和nginx相关的进程 ps -ef|grep nginx # 杀掉对应的进程 kill -9 pid
-
完全卸载(确认是否有相关依赖存留)
yum remove -y nginx
-
确认是否还有nginx相关文件残留
# 方法1 whereis whereis nginx # 或者方法2 find find / -name nginx* # 删除目录及文件 rm -rf */nginx
3.2 安装nginx所需依赖
# gcc是linux下的编译器,它可以编译 C,C++,Ada,Object C和Java等语言
# pcre是一个perl库,包括perl兼容的正则表达式库,nginx的http模块使用pcre来解析正则表达式
# zlib库提供了很多种压缩和解压缩方式nginx使用zlib对http包的内容进行gzip
# openssl是web安全通信的基石
yum -y install gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
3.3 安装
3.3.1 安装方式一YUM安装
yum -y install nginx
-
安装完后路径如下:
# 可执行程序文件 /usr/sbin/nginx # 配置文件路径 /etc/nginx/nginx.conf # 日志路径 /var/log/nginx # 缓存路径 /var/cache/nginx # PID目录 /var/run/nginx.pid # 默认站点目录 /usr/share/nginx/html
-
启动nginx并设置开机自启
# 查看nginx安装版本 nginx -v # 启动nginx systemctl start nginx.service # 设置开机自启 systemctl enable nginx.service # 关闭开机自动启动 systemctl disable nginx
3.3.2 安装方式二源码编译安装
-
下载
tar.gz
安装包,点击下载- 也可以用
weget
:wgte https://nginx.org/download/nginx-1.23.2.tar.gz
- 也可以用
-
上传至目标服务器指定地址/目录
-
解压缩
tar xvf nginx-1.21.6.tar.gz
-
进入解压缩后的nginx目录
cd ./nginx
-
修改配置
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
-
编译源码
# 编译 make # 安装 make install
-
启动nginx
./nginx
4 Docker安装
# 下载最新镜像
docker pull nginx:latest
# 确认镜像
docker images
# 运行nginx容器
docker run --name nginx-test -p 8080:80 -d nginx
5 常用命令
- 常用命令
# 重启Nginx
systemctl restart nginx
# 停止Nginx
systemctl stop nginx
# 重新加载Nginx
systemctl reload nginx
# 查看 Nginx 运行状态
systemctl status nginx
# Nginx 应用程序命令:
# 向主进程发送信号,重新加载配置文件,热重启
nginx -s reload
# 重启 Nginx
nginx -s reopen
# 快速关闭
nginx -s stop
# 等待工作进程处理完成后关闭
nginx -s quit
# 查看当前 Nginx 最终的配置
nginx -T
# 检查配置是否有问题
nginx -t
6 配置文件详解
# main段配置信息
user nginx; # 运行用户,默认即是nginx,可以不进行设置
worker_processes auto; # Nginx 进程数,一般设置为和 CPU 核数一样
error_log /var/log/nginx/error.log warn; # Nginx 的错误日志存放目录
pid /var/run/nginx.pid; # Nginx 服务启动时的 pid 存放位置
# events段配置信息
events {
use epoll; # 使用epoll的I/O模型(如果你不知道Nginx该使用哪种轮询方法,会自动选择一个最适合你操作系统的)
worker_connections 1024; # 每个进程允许最大并发数
}
# http段配置信息
# 配置使用最频繁的部分,代理、缓存、日志定义等绝大多数功能和第三方模块的配置都在这里设置
http {
# 设置日志模式
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main; # Nginx访问日志存放位置
sendfile on; # 开启高效传输模式
tcp_nopush on; # 减少网络报文段的数量
tcp_nodelay on;
keepalive_timeout 65; # 保持连接的时间,也叫超时时间,单位秒
types_hash_max_size 2048;
include /etc/nginx/mime.types; # 文件扩展名与类型映射表
default_type application/octet-stream; # 默认文件类型
include /etc/nginx/conf.d/*.conf; # 加载子配置项
# server段配置信息
server {
listen 80; # 配置监听的端口
server_name localhost; # 配置的域名
# location段配置信息
location / {
root /usr/share/nginx/html; # 网站根目录
index index.html index.htm; # 默认首页文件
deny 172.168.22.11; # 禁止访问的ip地址,可以为all
allow 172.168.33.44;# 允许访问的ip地址,可以为all
}
error_page 500 502 503 504 /50x.html; # 默认50x对应的访问页面
error_page 400 404 error.html; # 同上
}
}