1.安装

yum install nginx -y

2.添加虚拟主机

server {
             listen          10.1.1.111:80; #监听端口为80
             server_name www.yang.com; ## 绑定域名,虚拟主机和真实主机监听的IP和端口一致时,可通过分析域名来判断是访问虚拟主机还是真实主机,因为一个IP可以绑定多个域名
             root /cs4;  ##设置根目录
             charset utf-8; ## 设置中文编码,没有 中文会乱码
             index 233.html;  ## 设置默认页面为233.html,就是访问第一个找这个文件 默认为index.html
            }

nginx配置虚拟主机很简单在配置文件里的server段后面再最加一个server段,里面配置监听端口和根目录即可。

3.反向代理

upstream jjjj{
            server 10.1.1.114 max_fails=3 fail_timeout=20s weight=1 backup;
            #backup 表示为备份服务器,只有下面两个无法访问或者特别忙的时候才会被请求  换成down  表示无论如何都无法被访问的,一般用于下架服务器
            server 10.1.1.112 max_fails=3 fail_timeout=20s weight=1;
            server 10.1.1.113:80 max_fails=3 fail_timeout=20s weight=2;
           #创建一个后端组名字jjjj,有两个后服务器,端口不加默认为80
                #max_fails=3 最大失败次数0表示禁止失败尝试
                #fail_timeout=20s 最大失败超时时间
                weight=2 轮询权重,表示112访问一次 113会被访问两次
             ip_hash;#nginx默认分配为轮询,加这个就变成了IP哈希算法,效果是计算客户机的IP每次都分配到同一个后端主机,可以解决session一致问题。
             # fair;  fair算法 顾名思义,公平地按照后端服务器的响应时间(rt)来分配请求,响应时间短即rt小的后端服务器优先分配请求。如果需要使用这种调度算法,必须下载Nginx的upstr_fair模块。
             #url_hash;  url哈希算法,计算url哈希,保证计算同一个url每次都能分配到同一个后端主机,一般用于后端为缓存服务器来提高缓存命中率
        }
        以上代码在http内,server以上
 location / {
        proxy_pass http://jjjj;
        proxy_set_header zsip $remote_addr;
        #将remote_addr变量的值传递给 zsip变量,remote_addrm里面存放的是客户机的访问IP,目的是把真实Ip传递给后端服务器日志里
        #表示所有访问该服务器的请求都转给jjjj组
                }
#在server 的liocation 段加入跳转后端组的代码
以上代码在server段内

yum 安装nginx 及配置
#如果不改默认记录的是前端反代server的ip,注意这边调用要加前缀 "http_".

动静分离配置

location ~ \.(php)?$ {
      proxy_pass http://dddd;
#表示匹配的末尾为.php后缀的请求,转发给dddd组处理
        }
location ~ \.(swf|gif|jpg)?$ {
#表示匹配到图片的转给jjjj后端组
      proxy_pass http://jjjj;
        }
location ~ / {
#表示前面两个没匹配上的,都给jjjj组处理
       proxy_pass http://jjjj;
        }

~ (.png)$ ##匹配后缀为.png的url
~ .(png|jpg)$ ##匹配后缀为.png或者.jpg的url

缓存

   proxy_cache_path /cache/nginx/ levels=1:2 keys_zone=my_cache:32m inactive=1d max_size=10g;
## 创建一个名为my_cache的缓存,使用32M内存,10g的硬盘,保存1天,注意/cache/nginx/ 文件夹属主要是nginx用户
    add_header serverip $server_addr;
##传递一个字段serverip给访问的浏览器 ,值是服务器的Ip地址,反代和和后端加了,浏览器都会显示
    add_header cache_status $upstream_cache_status;
## 传递一个字段给访问的浏览器,值是缓存的命中状态

#以上代码在http段内部,在server段以上

proxy_cache my_cache;  #启用缓存
proxy_cache_valid 304 12h; #304状态的保存12小时
proxy_cache_valid any 10m;  #其他状态保存10分钟

#调用,以上代码在location / { }内部
yum 安装nginx 及配置_第1张图片

PS : 实验一定要将selinux 关闭,浪费了三天时间,如果修改缓存的时间,对已经缓存的内容不起作用,已经缓存的内容还是要等到前一个配置时间才会失效。

PS :匹配错误心得,proxy_pass 后面如果要带/ ,前面location 最后也必须带,建议都不要带
root /usr/share/nginx/html/doc; 修改根只能在server段修改