nginx入门笔记教程
安装配置
随笔
0.0.0.0 account.jetbrains.com hosts有这个说明师破解版idea
尚硅谷老师nginx公开课:自己的笔记 原视频链接找不到了
一键安装准备的配置
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
支持热部署 性能高
查看linux的ip ifconfig xshell连接
进入nginx官网 http://nginx.org/ 下载nginx
安装pcre
在usr/src 目录下 sudo代表强制执行
wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz
tar -xvf pcre-8.37.tar.gz 解压后进入src目录 执行 ./configure
make && make install 进行编译并安装
查看版本 pcre-config --version
安装zlib
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssk-devel
安装nginx
解压 tar -xvf wenjian
直接执行./configure
make && make install
cd /usr/local/nginx/sbin 启动脚本 ./nginx
查看进程ps -ef| grep nginx
打开80端口的防火墙 firewall-cmd --add-port=80/tcp
firewall-cmd --list-all 查看开放的端口
nginx配置文件
位置 /usr/local/nginx/conf nginx.conf
全局块
会设置一些影响nginx服务器整体运行的配置指令
worker\_processes值 可以支持的并发处理量
events块
主要影响nginx服务器与用户之间的网络连接
worker——connections 1024; 支持的最大的连接数
http块
代理缓存 日志定义等绝大多数功能和第三方模块的配置都在这里
http全局块
包括文件引入 MIM-TYPE定义 日志自定义 连接超时时间 但链接请求数上限等。
httpserver
与虚拟主机密切祥光 为了节省互联网服务器的硬件成本
全局server块
本虚拟主机的监听配置和本虚拟主机的名称或者ip配置
location块
接收到的请求字符串 对虚拟主机名称之外的字符串进行匹配 对特定的请求进行处理 地址定向 数据缓存 和应答控制等功能
常用命令
查看版本号 sbin目录下 ./nginx -v
启动 ./nginx
关闭 ./nginx -s stop
重新加载nginx ./nginx -s reload
反向代理
什么是正向代理
依赖代理服务器去访问网址就是正向代理 是两个地址
正向代理不知道客户端是谁
反向代理
反向代理服务器和目标服务器对外是一个地址,暴露的是代理服务器的地址,隐藏了目标服务器的地址 类似与转发 地址栏不变
反向代理不知道服务端是谁
实例
打开浏览器 输入www,123.com 跳转到tomcat的主界面
在tomcat目录下 cd logs tail -f catalina.out 打印tomcat文件信息
访问过程分析
例子一
1 在window的hosts中创建一个ip和地址映射来模拟浏览器的访问 192.168.213.3 www.123.com
2 vi nginx.conf htmlserver下 80端口的名字改为ip地址 location root下加 proxy\_pass http://127.0.0.1:8080;
例子2
准备两个tomcat 在tomcat的webapp文件下分别创建叫edu和vod的文件夹 分别修改tomcat端口地址为8080和8081 分别开启两个tomcat服务器和nginx服务器
在全局server块中添加
实现效果通过访问 192.168.213.3:9001/edu/项目 访问到虚拟机的127.0.0.1:8080
通过访问 192.168.213.3:9001/vod/项目 访问到虚拟机的127.0.0.1:8081
负载均衡
单纯的提高性能 并不能解决访问量大的问题
一个服务器解决不了访问量的问题,就增加服务器的数量,把请求分发在各个服务器上,将负载分发给不同的服务器;
每个服务器带宽有限制 所以需要集群
准备工作
在两个tomcat中都创建一个edu的文件 在文件下写两个不同的页面
实现过程
在http全局块添加 起名为myserver
在server中添加
动静分离
目的
为了加快网站的解析速度,将动态网页和静态网页给不同的服务器来解析,加快解析速度。
概念
准备工作
在linux中准备一些静态资源 /usr/local/data文件下创建一个image文件和wwww文件用来存放静态资源
具体操作
在/usr/local/nginx/sbin/ ./nginx启动nginx 的conf中修改配置文件
server块中 autoindex on; 列出文件的内容
高可用
配置多台nginx 防止nginx挂掉 主nginx和备份nginx(keepalived)
准备工作
两台服务器 都安装nginx 安装keepalived 虚拟的ip地址
安装keepalived
yum install keepalived -y
在etc文件下生成目录keepalived 有keepalived.conf
修改keepalived.conf配置文件
全局配置:唯一路由 写的主机名字 在etc/host文件中配置
脚本配置:查看服务器是否还活着
虚拟ip配置:设置主备服务器 设置网卡
创建一个nginx\_check.sh 检测的脚本
修改备份服务器
启动两台服务器上的nginx和keepalived
./nginx
systemctl start keepalived.service
原理
work是如何工作的/线程池空被分配
好处
- 利于nginx进行热部署操作 nginx -s reload
- 不需要加锁 每个worker是独立的进程
设置多少个worker才合适
- 服务器cpu数
worker\_connection
- 发送请求 占用两个或者4个连接数
最大连接数:
- 普通的静态访问 worker\_connection*worker\_connection/2
- 反向代理 worker\_connection*worker\_connection/4