Nginx
Nginx 是开源、高性能、高可靠的 Web 和反向代理服务器,而且支持热部署,几乎可以做到 7 * 24 小时不间断运行,即使运行几个月也不需要重新启动,还能在不间断服务的情况下对软件版本进行热更新。性能是 Nginx 最重要的考量,其占用内存少、并发能力强、能支持高达 5w 个并发连接数,最重要的是,配置使用也比较简单。
Nginx的安装
环境说明:Linux为腾讯云的CentOS7.6
安装命令:
# 没有yum命令的可能需要安装一下yum命令
yum install nginx -y
查看安装信息:
rpm \-ql nginx
主要文件说明
# 我们使用时核心需要关注的文件夹有两个/etc/nginx/和/usr/share/nginx
/etc/nginx/conf.d/ #是子配置项存放处
/etc/nginx/nginx.conf # 主配置文件会默认把这个文件夹中所有子配置项都引入
/usr/share/nginx/html/ #静态文件都放在这个文件夹,也可以根据你自己的习惯放在其他地方
# Nginx配置文件
# nginx 主配置文件
/etc/nginx/nginx.conf
/etc/nginx/nginx.conf.default
# 可执行程序文件
/usr/bin/nginx-upgrade
/usr/sbin/nginx
# nginx库文件
# 用于配置系统守护进程
/usr/lib/systemd/system/nginx.service
# Nginx模块目录
/usr/lib64/nginx/modules
# 帮助文档
/usr/share/doc/nginx-1.16.1
/usr/share/doc/nginx-1.16.1/CHANGES
/usr/share/doc/nginx-1.16.1/README
/usr/share/doc/nginx-1.16.1/README.dynamic
/usr/share/doc/nginx-1.16.1/UPGRADE-NOTES-1.6-to-1.10
# 静态资源目录
/usr/share/nginx/html/404.html
/usr/share/nginx/html/50x.html
/usr/share/nginx/html/index.html
# 存放Nginx日志文件
/var/log/nginx
Nginx常用命令
# 开机配置
# 开机自动启动
systemctl enable nginx
# 关闭开机自动启动
systemctl disable nginx
# 启动Nginx
# 启动Nginx成功后,可以直接访问主机IP,此时会展示Nginx默认页面
systemctl start nginx
# 停止Nginx
systemctl stop nginx
# 重启Nginx
systemctl restart nginx
# 重新加载Nginx
systemctl reload nginx
# 查看 Nginx 运行状态
systemctl status nginx
# 查看Nginx进程
ps -ef | grep nginx
# 杀死Nginx进程
# 根据上面查看到的Nginx进程号,杀死Nginx进程,-9 表示强制结束进程
kill -9 pid
# Nginx 应用程序命令:
# 向主进程发送信号,重新加载配置文件,热重启
nginx -s reload
# 重启 Nginx
nginx -s reopen
# 快速关闭
nginx -s stop
# 等待工作进程处理完成后关闭
nginx -s quit
# 查看当前 Nginx 最终的配置
nginx -T
# 检查配置是否有问题
nginx -t
查看端口下的服务:
# 查看占用端口号的服务
netstat -nlp
# 查看某个服务的进程信息
ps -ef|grep 服务名称
# 查看当前进程的端口号
netstat -anp|grep 进程号
# 查看某个端口下的服务
lsof -i:端口号
lsof -i:端口号|grep 服务名
启动nginx:
systemctl start nginx
访问nginx:
问题:发现页面内容是CentOS内容?
解决问题:
1,查看nginx状态
# 简约版
nginx -t
# 全面版
2,查看nginx配置文件信息
vim /etc/nginx/nginx.conf
发现80端口下的root路径指向/usr/share/nginx/html
3,查看/usr/share/nginx/html下信息
cd /usr/share/nginx/html
ls
3,index,html看起来很熟悉,进去看一下
vim index.html
发现这就是我们使用ip直接访问时看到的内容;说明nginx安装是没有问题的,他默认显示的就是CentOS页面。后期我们可以根据我们自己的需求,修改对应的index.html路径。
Nginx核心配置
Nginx经典配置示例:
# 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; # 同上
}
}
- main全局配置,对全局生效。
- events 配置影响 Nginx 服务器与用户的网络连接。
- http 配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。
- server 配置虚拟主机的相关参数,一个 http 块中可以有多个 server 块。
- location 用于配置匹配的 uri 。
- upstream 配置后端服务器具体地址,负载均衡配置不可或缺的部分。
层级结构如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SVpk8Ypv-1656729739720)(Nginx.assets/640)]
全局生效。
- events 配置影响 Nginx 服务器与用户的网络连接。
- http 配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。
- server 配置虚拟主机的相关参数,一个 http 块中可以有多个 server 块。
- location 用于配置匹配的 uri 。
- upstream 配置后端服务器具体地址,负载均衡配置不可或缺的部分。
层级结构如下: