nginx代理静态页面
1 | $ cd /etc/nginx/conf.d/ |
修改location
1 | location / { |
保存退出1
2
3
4
5$ nginx -t #检查配置有无语法错误
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
$ nginx -s reload
在浏览器访问nginx服务器
nginx代理静态页面的缓存

和图1比较,ETag和Last-Modified没有改变,服务器决策后返回304
配置一下nginx加一个过期时间
1 | $ cd /etc/nginx/conf.d |
1 | location / { |
1 | $ nginx -t |
再次用浏览器访问
从图中可以看到多了Cache-Control: max-age=7200, 7200s正好是服务器设置的2h
note: 刷新页面发现request header中的Cache-Control:max-age=0
这个属于浏览器的行为,每次刷新页面正常有设置的缓存2h,应该不请求服务器,事实上因为request_header中的max-age=0还是会发一次请求的再让ETag去和服务器比较,决策后返回的还是304
设置跨越
1 | $ vim /etc/nginx/conf.d/default.conf |
1 | location / { |
1 | $ nginx -t |
nginx的反向代理
1 | $ cd /etc/nginx/conf.d |
1 | server { |
1 | $ nginx -t |
注释:2000是docker容器里的nginx,8000是云主机的nginx(相当于2台服务器)
通过浏览器访问
5. 配置https
配置文件如下1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24upstream demo {
server 127.0.0.1:3001;#ip,port可以随便修改为合适的ip,port, 这里多写几个可以做负载均衡
}
server {
listen 443;
server_name 192.168.1.2; #服务器的ip
ssl on;
ssl_certificate /ssl/www/www.crt;#填写具体的文件路径
ssl_certificate_key /ssl/www/www.key;#填写具体的文件路径
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
server_name_in_redirect off;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering off;
proxy_pass http://demo;
proxy_redirect off;
}
}