安装Nginx
去官网http://nginx.org/下载对应的nginx包,推荐使用稳定版本
上传nginx到linux系统
安装依赖环境
(1)安装gcc环境
yum install gcc-c++
(2)安装PCRE库,用于解析正则表达式
yum install -y pcre pcre-devel
(3)zlib压缩和解压缩依赖,
yum install -y zlib zlib-devel
(4)SSL 安全的加密的套接字协议层,用于HTTP安全传输,也就是https
yum install -y openssl openssl-devel
解压,需要注意,解压后得到的是源码,源码需要编译后才能安装
tar -zxvf nginx-1.16.1.tar.gz
编译之前,先创建nginx临时目录,如果不创建,在启动nginx的过程中会报错
mkdir /var/temp/nginx -p
在nginx目录,输入如下命令进行配置,目的是为了创建makefile文件
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/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
注: 代表在命令行中换行,用于提高可读性
配置命令:
命令 解释
–prefix 指定nginx安装目录
–pid-path 指向nginx的pid
–lock-path 锁定安装文件,防止被恶意篡改或误操作
–error-log 错误日志
–http-log-path http日志
–with-http_gzip_static_module 启用gzip模块,在线实时压缩输出数据流
–http-client-body-temp-path 设定客户端请求的临时目录
–http-proxy-temp-path 设定http代理临时目录
–http-fastcgi-temp-path 设定fastcgi临时目录
–http-uwsgi-temp-path 设定uwsgi临时目录
–http-scgi-temp-path 设定scgi临时目录
make编译
make
安装
make install
进入sbin目录启动nginx
./nginx
停止:./nginx -s stop
优雅的关闭: ./nginx -s quit
重新加载:./nginx -s reload
打开浏览器,访问虚拟机所处内网ip即可打开nginx默认页面,显示如下便表示安装成功:
注意事项:
如果在云服务器安装,需要开启默认的nginx端口:80
如果在虚拟机安装,需要关闭防火墙
本地win或mac需要关闭防火墙
配置相关
1 root 与 alias
#访问路径为: /home/imooc/files/img/face.png
# root 路径完全匹配访问
# url:port/imooc/files/img/face.png
location /imooc {
root /home
}
#alias 对路径做一个别名
# url:port/hello/files/img/face.png
location /hello {
alias /home/imooc
}
2.location的匹配规则
#默认匹配,普通匹配
location / {
root /home;
}
# = 精确匹配
location = /imooc/img/face1.png {
root /home;
}
# ~* 匹配正则表达式,不区分大小写
location ~* .(GIF|jpg|png|jpeg) {
root /home;
}
# 匹配正则表达式,区分大小写 GIF必须大写才能匹配到
location ~ .(GIF|jpg|png|jpeg) {
root /home;
}
# ^~ 以某个字符开头的路径
location ^~ /imooc/img {
root /home;
}
- Nginx 的 跨域配置支持
#允许跨域请求的域,*代表所有
add_header 'Access-Control-Allow-Origin' *;
#允许带上cookie请求
add_header 'Access-Control-Allow-Credentials' 'true';
#允许请求的方法,比如 GET/POST/PUT/DELETE
add_header 'Access-Control-Allow-Methods' *;
#允许请求的header
add_header 'Access-Control-Allow-Headers' *;
- Nginx的放盗链配置
#对源站点验证
valid_referers *.imooc.com;
#非法引入会进入下方判断
if ($invalid_referer) {
return 404;
}
- upstream指令参数
# worker进程设置1个,便于测试观察成功的连接数
worker_processes 1;
# max_conns 最大连接数
upstream tomcats {
server 192.168.1.173:8080 max_conns=2;
server 192.168.1.174:8080 max_conns=2;
server 192.168.1.175:8080 max_conns=2;
}
# slow_start=60s 60s 之后该主机开始提供服务
# slow_start参数不能使用在hash radom load balaning中
# 如果在upstram中之有一台server则该参数无效
upstream tomcats {
server 192.168.1.173:8080 weight=6 slow_start=60s;
server 192.168.1.174:8080 weight=2;
server 192.168.1.175:8080 weight=2;
}
# down 表示该主机不可用
upstream tomcats {
server 192.168.1.173:8080 down;
server 192.168.1.174:8080 weight=1;
server 192.168.1.175:8080 weight=1;
}
# backup 表示当前服务器节点是备用机,之有在其他的所有服务都宕机以后,自己才会加入到集群当中
# backup参数不能使用在hash radom load balaning中
upstream tomcats {
server 192.168.1.173:8080 backup;
server 192.168.1.174:8080 weight=1;
server 192.168.1.175:8080 weight=1;
}
- 负载均衡
# 默认采用轮询
upstream tomcats {
server 192.168.1.173:8080;
server 192.168.1.174:8080;
server 192.168.1.175:8080;
}
# weight 根据权重来负载
upstream tomcats {
server 192.168.1.173:8080 weight=6;
server 192.168.1.174:8080 weight=2;
server 192.168.1.175:8080 weight=2;
}
# ip_hash
# ip_hash可以保证用户访问可以请求到上游的服务器中固定的服务器,前提是用户ip没有发生更改
# 使用ip_hash 注意,不能把后台服务器直接移除,只能标记为down
upstream tomcats {
ip_hash;
server 192.168.1.173:8080;
server 192.168.1.174:8080 down;
server 192.168.1.175:8080;
}
# url_hash
# url_hash 每次根据请求的url地址hash后访问到固定的服务器节点
upstream tomcats {
# url hash
hash $request_uri;
server 192.168.1.173:8080;
server 192.168.1.174:8080;
server 192.168.1.175:8080;
}
# least_conn 最少连接数
upstream tomcats {
least_conn
server 192.168.1.173:8080;
server 192.168.1.174:8080;
server 192.168.1.175:8080;
}