1. 去官网http://nginx.org/下载对应的nginx包,推荐使用稳定版本
2. 上传nginx到linux系统
3. 安装依赖环境
- 安装gcc环境
yum install gcc-c++
- 安装PCRE库,用于解析正则表达式
yum install -y pcre pcre-devel
- zlib压缩和解压缩依赖
yum install -y zlib zlib-devel
- SSL 安全的加密的套接字协议层,用于HTTP安全传输,也就是https
yum install -y openssl openssl-devel
4. 解压,需要注意,解压后得到的是源码,源码需要编译后才能安装
cd /home/software 上传到这个目录,然后在这里解压
tar -zxvf nginx-1.16.1.tar.gz
5. 编译之前,先创建nginx临时目录,如果不创建,在启动nginx的过程中会报错
mkdir /var/temp/nginx -p
6. 在nginx目录,输入如下命令进行配置,目的是为了创建makefile文件
./configure --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --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
注: 代表在命令行中换行,用于提高可读性
配置命令:
7. make编译 (在减压的目录执行: /home/software/nginx-1.16.1)
make
8. 安装
make install
9. 进入sbin目录启动nginx
cd /var/log/nginx
cd sbin
启动
./nginx
停止:./nginx -s stop
重新加载:./nginx -s reload
检测配置文件是否成功: ../sbin/nginx -t
successful 表示成功
10. 打开浏览器,访问虚拟机所处内网ip即可打开nginx默认页面,显示如下便表示安装成功:
注意事项:
1. 如果在云服务器安装,需要开启默认的nginx端口:80
2. 如果在虚拟机安装,需要关闭防火墙
关闭防火墙:
systemctl stop firewalld.service
禁用
systemctl disable firewalld.service
查看状态: systemctl status firewalld.service
3. 本地win或mac需要关闭防火墙
nginx.conf 配置结构
main 全局配置
event 配置工作模式以及连接数
http http模块相关配置
server 虚拟主机配置,可以有多个
location 路由规则,表达式
upstream 集群,内网服务器
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 指令参数 max_conns weight
限制每台server的连接数,用于保护避免过载,可起到限流作用.
测试参考配置如下:
# worker进程设置1个,便于测试观察成功的连接数
worker_processes 1;
upstream tomcats {
server 192.168.1.173:8080 max_conns=2 weight=1 ;
server 192.168.1.174:8080 max_conns=2 weight=2 ;
server 192.168.1.175:8080 max_conns=2 weight=4 ;
}
# max_conns 最大连接数
# weight 权重,数值越大优先级越高
# slow_start 权重启动时间
# down 禁用
# backup 备份,备用机
# max_fails 最大失败次数,到达最大值屏蔽
# fail_time 失败时间,
server {
listen 80;
server_name www.tomcats.com;
location / {
proxy_pass http://tomcats;
}
}
Nginx的缓存
1. 浏览器缓存:
加速用户访问,提升单个用户(浏览器访问者)体验,缓存在本地
2. Nginx缓存
缓存在nginx端,提升所有访问到nginx这一端的用户
提升访问上游(upstream)服务器的速度
用户访问仍然会产生请求流量
控制浏览器缓存:
location /files {
alias /home/imooc;
# expires 10s;
# expires @22h30m;
# expires -1h;
# expires epoch;
# expires off;
expires max;
}