在云服务器中,通过docker部署的nginx,如何配置http和https

1.http配置

直接编写配置文件

server {    

    # HTTP的默认访问端口80
    listen 80;

    # 填写服务器ip 【两种选择选其一】

    # server_name hongdou.tech;         # 有域名选择此条
    server_name 8.130.89.51:3010;       # 没有域名选择此条

   

    # 将所有HTTP请求通过rewrite指令重定向到HTTPS。
    # rewrite ^(.*)$ https://$server_name$1 permanent;

    location / {
        root   /workspace/wwtys-web;
        try_files $uri $uri/ /index.html last;
        index index.html index.htm;
        charset utf-8;
    }

    location /api/ {
        proxy_pass http://webservers/;
        proxy_redirect default;
        rewrite ^/api/(.*) /$1 break;
    }

    location /v1/ {
        proxy_pass http://8.130.89.51:8090/;
        proxy_redirect default;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header  X-Real-Port        $remote_port;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;


        #proxy_set_header x-forwarded-for $remote_addr;

        #一层代理时是用户真实ip,二层代理时是第一台nginxip
        #proxy_set_header X-Real-IP $remote_addr;

        #一层代理时没有值,多层代理里面会存储多个ip值,第一个值就是真实用户ip
        #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        rewrite ^/v1/(.*) /$1 break;
    }

}

2.https配置

1.申请数字签名

我是在阿里云申请的ssl 【目前是能一次申请20个,一个的有效期为三个月】

2.选择格式

我使用的是nginx,所以下载了nginx版的压缩包。

3.在创建目录

我的nginx挂载目录如下

在你要编写的nginx配置文件的同级目录(vhost)下,创建cert目录,把上一步下载好的压缩包解压后,把两个文件(.key和.pem)导入该文件夹。

注释:我是在vhost目录下创建的xxx.conf配置文件和cert目录

4.编写配置文件

upstream webservers{ # 配置的服务器集群
    server 8.130.89.50:3310;
}

server {

    ## HTTPS的默认访问端口443
    listen 443 ssl;

    # 填写证书绑定的域名
    server_name hongdou.tech;

    # 填写证书文件名称
    ssl_certificate vhosts/cert/hongdou.tech.pem;
    # 填写证书私钥文件名称
    ssl_certificate_key vhosts/cert/hongdou.tech.key;

    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout 5m;

    #自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)
    #TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

    #表示优先使用服务端加密套件。默认开启
    ssl_prefer_server_ciphers on;

    charset urf-8;

    location / {
        root   /workspace/wwtys-web;
        try_files $uri $uri/ /index.html last;
        index index.html index.htm;
        charset utf-8;
    }

    location /api/ {
        proxy_pass http://webservers/;
        proxy_redirect default;
        rewrite ^/api/(.*) /$1 break;
    }

    location /v1/ {
        proxy_pass http://hongdou.tech:8090/;
        proxy_redirect default;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Real-Port      $remote_port;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;


        #proxy_set_header x-forwarded-for $remote_addr;

        #一层代理时是用户真实ip,二层代理时是第一台nginxip
        #proxy_set_header X-Real-IP $remote_addr;

        #一层代理时没有值,多层代理里面会存储多个ip值,第一个值就是真实用户ip
        #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        rewrite ^/v1/(.*) /$1 break;
    }

}

server {
    # HTTP的默认访问端口443
    listen 80;

    # 填写证书绑定的域名
    server_name hongdou.tech;

    # 将所有HTTP请求通过rewrite指令重定向到HTTPS。
    rewrite ^(.*)$ https://$server_name$1 permanent;

    location / {
        root   /workspace/hongdou-web;
        try_files $uri $uri/ /index.html last;
        index index.html index.htm;
        charset utf-8;
    }

    location /api/ {
        proxy_pass http://webservers/;
        proxy_redirect default;
        rewrite ^/api/(.*) /$1 break;
    }
}
 

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值