关于Nginx
Nginx是一款高性能、轻量级web服务软件
Nginx是一个 轻量级/高性能的反向代理Web服务器,用于 HTTP、HTTPS、SMTP、POP3 和IMAP 协议。他实现非常高效的反向代理、负载平衡,他可以处理2-3万并发连接数,官方监测能支持5万并发,现在中国使用nginx网站用户有很多,例如:新浪、网易、腾讯等。
1)稳定性高
2)系统资源消耗低
3)对HTTP并发连接的处理能力高(单台物理服务器可支持30000-50000个并发请求)
Nginx 与 Apache 的区别
最核心的区别在于
Apache 采用是同步多进程/线程模型,一个连接对应一个进程
Nginx 采用是异步非阻塞机制,多个连接可以对应一个进程
Nginx 抗并发能力要更高
Nginx 内存、cpu资源消耗更少
Nginx 配置更简洁,使用场景更多,稳定性高
Nginx的应用场景
1)用作web网站服务,处理http静态页面请求
2)用作虚拟主机,实现一个服务器用于做多个网站站点
3)用作反向代理、负载均衡,可以作为网关代理服务器接受客户端的请求转发给后端节点服务器集群
编译安装nginx服务
1)官网下载nginx软件包传到所需目录下
2)关闭防火墙 初始化操作
3)安装所需依赖包
4)useradd -M -s /sbin/nologin nginx
创建运行用户、组(Nginx 服务程序默认以 nobody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限)
5)编译安装nginx
先解压缩
cd /opt
tar zxvf nginx-1.12.0.tar.gz -C /opt/
cd nginx-1.12.0/
./configure \
--prefix=/usr/local/nginx \ #指定nginx的安装路径
--user=nginx \ #指定用户名
--group=nginx \ #指定组名
--with-http_stub_status_module #启用 http_stub_status_module 模块以支持状态统计
make && make install
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ #让系统识别nginx的操作命令
6)检查、启动、重启、停止 nginx服务
nginx查看当前版本号 -v
nginx升级新版本
添加nginx服务
方法一
方法二
nginx的主配置文件
1.全局配置
2.I/O 事件配置
3.HTTP 配置
nginx的两个进程
master进程:管理worker进程,加载配置文件
worker进程:处理请求连接
nginx设置最大并发
设置前最大1024
通过ulimit -n 65535 临时设置
想要永久设置需要在配置文件中添加
vim /usr/local/nginx/conf/nginx.conf
nginx 的 root 和 alias 指定路径的区别
root(根目录)
location /abc {
root /var/www;
}
处理方式: root路径+location路径 http://192.168.80.20/abc/xy101/scj.html --> /var/www/abc/xy101/scj.html
alias(别名目录、虚拟目录)
location /abc {
alias /var/www;
}
处理方式: alias路径替换location路径 http://192.168.80.20/abc/xy101/scj.html --> /var/www/xy101/scj.html
nginx 服务器当前的并发量怎么看
1)开启状态统计模块 --with-http_stub_status_module ,修改配置文件 开启状态统计功能 stub_status on; ,访问状态统计页面,看 Active connections: 行的数组
2)ss -antp | grep nginx | grep -c ESTAB
netstat
nginx 访问状态统计
1)安装nginx时添加状态统计模块 ./configure --with-http_stub_status_module
2)修改配置文件,开启状态统计功能 stub_status on; access_log off;
3)测试验证 curl -s
nginx 访问认证
1)安装 httpd-tools 软件包,使用 htpasswd 生成用户认证文件,并修改文件的归属nginx和权限400
2)修改配置文件,添加 basic_auth basic_auth_user_file 配置
3)测试验证
nginx 访问控制
在 http{...}配置块(对所有站点生效) server{...}配置块(对当前站点所有的访问路径生效) location{...}配置块(只对当前站点指定的URL访问路径生效) 中添加配置
黑名单配置 deny IP|网段;
白名单配置 allow IP|网段;
deny all;
nginx虚拟主机
基于域名的虚拟主机
server {
server_name XXX; #指定不同的域名
}
基于IP的虚拟主机
server {
listen <IP>:端口; #指定不同的IP
}
基于端口的虚拟主机
server {
listen IP:<端口>; #指定不同的端口
}