nginx安装和基础代理配置
进入http://nginx.org下载nginx
使用cmd或者gitbash进入文件夹运行nginx:如果你报了这样的错误:
那你就跟着我一起修改下conf配置文件:
然后运行就好了.
下面我们来解析以下nginx.conf配置文件
include servers/*.conf 能够让我们有新的站点时能够给他们配置单独的配置文件,实现更好的隔离.
代理配置的写法(写在.conf文件中):
server{
//代理监听端口
listen 80;
//代理的服务器域名
server_name test.com;
// /代表所有的请求都要代理到proxy_pass中
location / {
proxy_pass http://127.0.0.1:8888;
//修改host为浏览器的host而不是nginx的host
proxy_set_header Host $host;
}
}
nginx代理配置和代理缓存的用处
给nginx配置代理缓存:
Vary只有指定头的值相等时才会使用cache
由于每次index都加1,头的值不一样,因此不会使用旧缓存.
HTTPS解析
HTTPS就是HTTP加Security.
HTTP是不安全的,因为它是明文传输,因此代理和浏览器都能修改HTTP数据包
HTTPS的公钥是互联网上所有人都能拿到的加密后的字符串,私钥放在服务器.
HTTPS的四次握手:
使用nginx部署HTTPS服务
- 生成公钥和私钥
openssl req -x509 -newkey rsa:2048 -nodes -sha256 -keyout localhost-privkey.pem -out localhost-cert.pem
HTTPS默认使用的端口是443,ssl on是开启加密验证,ssl-certificate_key是私钥,ssl_certtificate是公钥.
运行之后你会发现如下页面:
由于我们的证书并不是权威机构签发的(就是这个域名并没有被权威机构认证过).
实现http跳转https的方法:在配置文件中添加:
HTTP2的优势和nginx配置HTTP2的简单使用
HTTP2的优势:
- 信道复用
- 分帧传输
- Server Push(允许服务端主动发送)
Link写服务端要推送的内容,as是内容类型,rel=preload是进行推送的声明.
conf配置:
node.js服务端内容:
一个测试http2协议性能的例子:https://http2.akamai.com/demo/http2-lab.html