HTTP协议与网络编程(八)Nginx代理以及面向未来的HTTP

一、Nginx的安装和基础代理

Nginx是现在互联网用的最多的Web服务器

1、Windows下的安装

进入官网下载Nginx,将其解压。在命令行输入 ./nginx.exe 启动该服务

访问localhost,出现如下界面即表示你的Nginx启动成功!

HTTP协议与网络编程(八)Nginx代理以及面向未来的HTTP_第1张图片

2、基础代理

  1. 通过include server/*.conf实现为单独一个站点设置配置文件

    http{
    	include server/*.conf
    }
    

    此配置代表将server文件下的所有conf文件导入

  2. 简单的代理

    server{
        listen 80;
        server_name test.com;
        location /{
            proxy_pass http://127.0.0.1:8888;
            # 修改代理头为请求的地址
            proxy_set_header Host $host;
        }
    }
    
    

    当访问test.com时会映射到本地8888端口

    $host表示请求的地址

二、代理缓存

proxy_cache_path cache levels=1:2 keys_zone=my_cache:10m;
server{
    listen        80;
    server_name test.com;
    location / {
        proxy_pass http://127.0.0.1:8888;
        # 修改代理头为请求的地址
        proxy_set_header Host $host;
        # 设置缓存(名字与上方对应)
        proxy_cache my_cache;
    }
}

可以使用Vary对不同请求头设置缓存

三、HTTPS

HTTP协议与网络编程(八)Nginx代理以及面向未来的HTTP_第2张图片

  • 证书生成命令:

    openssl req -x509 -newkey rsa:2048 -nodes -sha256 -keyout localhost-privkey.pem -out localhost-cert.pem

  • 通过Nginx部署HTTPS服务

    server{
        listen        ssl;
        server_name test.com;
    
        ssl on;
        ssl_certificate_key ../certs/localhost-privkey.pem;
        ssl_certificate ../certs/localhost-cert.pem;
    
        location / {
            proxy_pass http://127.0.0.1:8888;
            # 修改代理头为请求的地址
            proxy_set_header Host $host;
        }
    }
    
    
  • 访问自动跳转到https

    server{
        listen 80 default_server;
        listen [::]:80 default_server;
        server_name test.com;
        return 302 https://$server_name$request_url;
    }
    

四、HTTP2的优势

  • 信道复用
  • 分帧传输
  • Server Push

HTTP1.1:

HTTP协议与网络编程(八)Nginx代理以及面向未来的HTTP_第3张图片

HTTP2:

HTTP协议与网络编程(八)Nginx代理以及面向未来的HTTP_第4张图片

通过Nginx设置HTTP2:

server{
    listen        ssl http2;
    http2_push_preload on;
}

HTTP2必须在https的基础上开启

你可能感兴趣的:(#,HTTP网络协议,nginx,http)