如何将https服务所在主机进行nginx配置,完成路由

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将https服务所在主机进行nginx配置,完成路由相关的知识,希望对你有一定的参考价值。

 

     如何将https服务所在主机进行nginx配置,完成路由。如以我自己曾今的部署环境为例。

第一步:将安全证书上传至nginx服务器。如当前路径下/app/opt/nginx/cert/;

技术分享

第二步:nginx配置文件进行配置,添加以下模块

 

  upstream https_sso {

       server   171.96.188.162:6078;//sso服务对应的主机和端口号

    }

 

 

 

# HTTPS server

    #

 

    server {

        listen       9061 ssl;  //9091为访问nginx的接口

        server_name  sso1.zjtelecom.com.cn;

 

        ssl_certificate      /app/opt/nginx/cert/server.crt; //安全证书所在路径

        ssl_certificate_key  /app/opt/nginx/cert/server.key;

         ssl_protocols   TLSv1;#SSLv3;#TLSv1;

 

        ssl_session_cache    shared:SSL:1m;

        ssl_session_timeout  5m;

 

        ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;

        ssl_prefer_server_ciphers  on;

 

        location / {

           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

                proxy_set_header Host  $host:$server_port;

           proxy_set_header X-Forwarded-Proto https;

           proxy_redirect off;

           proxy_connect_timeout      240;

           proxy_send_timeout         240;

           proxy_read_timeout         240;

           # note, there is not SSL here! plain HTTP is used

           proxy_pass https://https_sso;

        }

    }

 

 

在配这里之前,sso所在的tomcat是已经配置支持https的。

 

第三步,重启nginx ,便可以通过检验nginx配置是否成功

 

检验示例:配置nginx前访问路径:https://171.96.188.162:6078/login

 

配置nginx后,通过nginx路由访问:https://171.96.188.160:9091/login

 

注意:nginx所在主机为171.96.188.160:9091

Nginxproxy,后端基于rack时候丢失端口号的问题及解决方案

server {
        listen 4567;
        server_name 192.168.0.2;
        location / {
            proxy_set_header Host $host:$server_port;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://backend_server;
        }

   }

问题产生的原因是: Nginx没有正确的把端口信息传送到后端,没能正确的配置nginx。
proxy_set_header Host $host:$server_port; 这一行是关键。

 













以上是关于如何将https服务所在主机进行nginx配置,完成路由的主要内容,如果未能解决你的问题,请参考以下文章

Nginx 部署的虚拟主机如何使用 Let's Encrypt 来进行加密 https

Nginx虚拟主机配置 + 虚拟主机支持PHP

Vue项目部署(Nginx)

全面介绍 Nginx 的反向代理 负载均衡 虚拟主机配置

nginx配置sso登录

如何使用 shell 将 nginx 虚拟主机(配置)文件拆分为小文件