Nginx
介绍
Nginx是一款轻量级的Web服务器/反向代理服务器以及电子邮件代理服务器。
特点:
- 占内存少
- 并发能力强
官网:http://nginx.org/en/download.html
编译方式安装Nginx(Centos7)
安装依赖
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
下载
wget http://nginx.org/download/nginx-1.16.1.tar.gz
解压到当前目录就行
tar -zxvf nginx-1.16.1.tar.gz
创建nginx目录
mkdir -p /usr/local/nginx
检查环境
[root@localhost nginx-1.16.1]# ./configure --prefix=/usr/local/nginx
安装
[root@localhost nginx-1.16.1]# make && make install
配置环境变量(这样任意路径下就可以使用nginx命令了)
[root@localhost conf]# vim /etc/profile PATH=/usr/local/nginx/sbin:$JAVA_HOME/bin:$PATH [root@localhost conf]# nginx -s reload
END
Nginx之编译安装的nginx加入systemctl
先删除nginx的进程
[root@localhost sbin]# ps -ef | grep nginx root 4634 1 0 16:49 ? 00:00:00 nginx: master process ./nginx nobody 4635 4634 0 16:49 ? 00:00:00 nginx: worker process root 4668 1892 0 16:56 pts/0 00:00:00 grep --color=auto nginx [root@localhost sbin]# kill -9 4634 4635 [root@localhost sbin]# ps -ef | grep nginx root 4670 1892 0 16:57 pts/0 00:00:00 grep --color=auto nginx
编辑 nginx.service文件
[root@localhost sbin]# vim /usr/lib/systemd/system/nginx.service [Unit] Description=nginx After=network.target [Service] Type=forking ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/usr/local/nginx/sbin/nginx -s stop PrivateTmp=true [Install] WantedBy=multi-user.target
配置生效&&nginx重新启动&&nginx开机自启
[root@localhost sbin]# systemctl daemon-reload [root@localhost sbin]# systemctl start nginx [root@localhost sbin]# systemctl enable nginx Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
测试(关闭防火墙或者开放80端口)
访问
nginx目录结构
Nginx命令
检查文件正确性
启动nginx
或者
[root@localhost sbin]# systemctl start nginx
重新加载配置文件
[root@localhost conf]# vim nginx.conf [root@localhost conf]# /usr/local/nginx/sbin/nginx -s reload
或者
[root@localhost sbin]# systemctl restart nginx
nginx配置文件结构(nginx.conf)
- http全局块
- server块
- Server全局块
- location块
Nginx具体应用
部署静态资源
nginx可以作为静态web服务器来部署静态资源。(html页面、css文件、js文件、图片、视频)
只需要将静态资源部署到nginx的html目录中即可
反向代理
- 正向代理:是一个位于客户端和原始服务器之间的服务器,为了从哪个原始服务器取得内容,客户端向代理发送一个请求并指定目标,然后代理向原始服务器提交请求并获得内容返回给客户端。
- 用于在防火墙内的局域网客户端提供访问Internet的途径
- 正向代理一般是在客户端设置代理服务器,通过代理服务器转发请求,最终访问到目标服务器
- 反向代理:代理服务器也是位于客户端与目标服务器之技安,但是对于用户而言,反向代理服务器就相当于目标服务器,用户可以直接访问反向代理服务器获取资源。
反向代理用法
前置条件
两台服务器,一台作为代理服务器,一台作为web服务器
代理服务器配置nginx web服务器部署一个应用
代理服务器:192.168.100.10
web服务器:10.2.168.193
web
修改 nginx.conf文件
server { listen 82; server_name localhost; location / { proxy_pass http://10.2.168.193:8080; } }
重启nginx
测试
END
负载均衡
将用户请求根据对应的负载均衡算法分发到应用集群中的一台服务器进行处理。避免了单点故障。
前提条件: 开启两台web服务器,一台代理服务器
编辑nginx.conf
upstream targetserver{ server 10.2.168.193:8080; server 10.2.168.193:8081; } server { listen 8080; server_name localhost; location / { proxy_pass http://targetserver; } }
重启nginx
验证
负载均衡策略
upstream targetserver{ server 10.2.168.193:8080 weight=10; server 10.2.168.193:8081 weight=5; } server { listen 8080; server_name localhost; location / { proxy_pass http://targetserver; } }