1.什么是nginx?
Nginx 是一款高性能的 http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器(俄罗斯开发),可以支持5W并发
2.应用场景
1.http服务器。做静态网页服务器
2.虚拟主机。模拟多个网站
3.反向代理、负载均衡
3.安装
1.安装gcc环境
yum install gcc-c++
2.第三方开发包PCRE
PCRE(Perl Compatible Regular Expressions)是一个 Perl 库,包括 perl 兼容的正则表达式库。
nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库
命令:yum install pcre pcre-devel
注:pcre-devel 是使用 pcre 开发的一个二次开发库。
3.ZLIB
zlib 库提供了很多种压缩和解压缩的方式,nginx 使用 zlib 对 http 包的内容进行 gzip,所以需要在 linux 上安装 zlib 库
命令:yum install zlib zlib-devel
4.OpenSSL
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,
并提供丰富的应用程序供测试或其它目的使用。nginx 不仅支持 http 协议,还支持 https(即在 ssl 协议上传输 http),
所以需要在 linux安装 openssl 库
命令:yum install -y openssl openssl-devel
5.上传nginx包,并解压
6.进入解压目录
7.使用configure命令创建makeFile文件
./configure \
--prefix=/usr/myStudy/nginx/nginx \
--sbin-path=/usr/bin/nginx \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--add-module=/usr/local/software/fastDFS/fastdfs_nginx_module/fastdfs-nginx-module/src
选中,复制,直接右键,makeFile文件就会生成了
8.编译
make
9.安装
make install
10.创建临时文件目录
mkdir /var/temp/nginx/client -p
11.启动
进入到安装目录下的sbin目录,启动服务
命令:./nginx
补充:
关闭服务命令:./nginx -s stop 或 ./nginx -s quit
刷新服务: ./nginx -s reload
4.nginx学习
1.部署静态网页
2.配置虚拟主机
端口绑定:
域名绑定:
域名与端口的绑定:
3.反向代理(代理服务器)
代理(代理客户端)
4.负载均衡
# 这个是负载均衡,weight代表权重,即访问比例,默认为1:1:1
upstream service-name(服务的名称){
server 192.168.17.130:8080 weight=比例;
server 192.168.17.130:8081;
server 192.168.17.130:8082;
}
server{
listen 80;#表示监听的端口号
service-name www.travle.com;#表示域名或者端口号
location /api/upload{
root 目录; #表示静态访问目录
index index.html #默认目录下资源首页
rewrite "^/api/(.*)$" /$1 break; #路径跳转,一般用来绕过网关,效果是将当前的访问路径中的api去掉
proxy_pass 代理路径 #表示反向代理,对域名进行解析
proxy_connect
proxy_read
}
}