Nginx
文章目录
- Nginx
- 1.Nginx安装
- 2.Nginx命令
- 3.静态资源
- 3.2 解决403问题
- 3.3 root与alias区别
- 4.反向代理/负载均衡
- 4.1 正向代理
- 4.2 反向代理
- 4.3 负载均衡策略
- 5.动静分离
1.Nginx安装
1.上传解压Nginx压缩包
2.先安装所需依赖包
yum -y install pcre-devel
yum -y install openssl openssl-devel
3.执行编译安装命令
./configure --prefix=/usr/local/nginx
执行完毕后
4.最后执行编译安装命令
make && make install
安装成功后 /usr/local/nginx目录下
5.启动nginx服务进行查看
nginx的配置文件为 nginx.conf
2.Nginx命令
在sbin目录下执行
- nginx -h:查看帮助
- nginx -v:查看nginx的版本
- nginx -V:查看版本和nginx的配置选项
- nginx -t:测试配置文件的正确性
- Nginx -T: 测试配置文件,并显示配置文件(这个命令可以快速查看配置文件)
- nginx -q:测试配置文件,但是只显示错误信息
- nginx -s:发送信号,下面详细介绍
- nginx -p:设置前缀
- nginx -c:设置配置文件
- nginx -g:附加配置文件路径
运维命令:
./nginx #启动
./nginx -s stop 或 ./nginx -s quit #停止
./nginx -s reload #重启服务
3.静态资源
3.1 Server块
listen #代表nginx要监听的端口
server_name #代表nginx要监听的域名
location #nginx拦截路径的匹配规则
nginx 的 403 Forbidden errors 表示你在请求一个资源文件但是nginx不允许你查看。 403 Forbidden 只是一个HTTP状态码,像404,200一样不是技术上的错误
3.2 解决403问题
-
为了保证文件能正确执行,nginx既需要文件的读权限,又需要文件所有父目录的可执行权限,例如,当访问/usr/local/nginx/html/image.jpg时,nginx既需要image.jpg文件的可读权限,也需要/, /usr,/usr/local,/usr/local/nginx,/usr/local/nginx/html的可以执行权限.解决办法:设置所有父目录为755权限
-
注意nginx的配置文件 user nobody改成user root
-
关闭Linux中的seLinux 并重启服务器
3.3 root与alias区别
alias与root的区别,root与alias主要区别在于nginx如何解释location后面的uri,这使两者分别以不同的方式将请求映射到服务器文件上。
root
/myPage/member
location /member {
root /myPage;
}
#当请求http://192.168.25.1/member/时,会返回 /myPage/member文件,即用/myPage 加上 /member。
alias
location /member {
alias /myPage;
}
#当请求http://192.168.25.1时,会返回 /myPage下index配置的文件,即用/myPage替换 /member。
4.反向代理/负载均衡
4.1 正向代理
正向代理服务器位于客户端和服务器之间,为了从服务器获取数据,客户端要向代理服务器发送一个请求,并指定目标服务器,代理服务器将目标服务器返回的数据转交给客户端。这里客户端需要要进行一些正向代理的设置的。
vpn
4.2 反向代理
反向代理,客户端对代理是无感知的,客户端不需要任何配置就可以访问,客户端将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址。
upstream配置
upstream web1 {
server 192.168.25.137:8080;
server 192.168.25.138:8080;
server 192.168.25.139:8080;
}
server配置
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://web1;
}
}
4.3 负载均衡策略
Nginx负载均衡策略分为2类
内置负载均衡类
1.轮询(默认)
该策略就是服务器将每个前端请求按顺序(时间顺序和排列次序)逐一分配到不同的后端服务器节点。如果后端服务器出现问题,即down掉,那么就会被自动剔除
2.ip_Hash
该策略是将前端的访问IP进行hash操作,然后根据hash结果将请求分配到不同的后端服务器节点。这样会使得每个前端访问IP会固定访问一个后端服务器节点,好处是前端用户的session只在一个后端服务器节点上,不必考虑一个session存在多台服务器节点出现session共享问题
3.加权
weight=权值
该策略在基本的轮询策略基础上考虑各后端服务器节点接受请求的权重,指定各后端服务器节点被轮询到的机率,主要应用于后端服务器节点性能不均的情况。
外部扩展类
1.url_hash
该策略将前端请求的url地址进行hash操作,根据hash结果将请求定向到同一后端服务器节点上,后台服务器为缓存是比较有效。一般url_hash需要配合缓冲命中来使用。
2.fair策略
该策略请求转发到负载最小的后端服务器节点上。Nginx通过后端服务器节点对响应时间来判断负载情况,响应时间最短的节点负载就相对较轻,Nginx就会将前端请求转发到此后端服务器节点上。
3.Sticky策略
该策略在多台服务器的环境下,为了确保一个客户端只和一台服务器通讯,它会保持长连接,并在结束会话后再次选择一个服务器,保证了压力均衡。
响应头是可以携带的
cookie nginx反向代理能够正常获取cookie 就需要 设置cookie放行