使用nginx实现https 转发到http服务器 post请求变成get请求

项目背景: 需要做一个小程序的后台服务器; 因为线上小程序只能访问 https接口, 为了方便少修改后台服务器使用ngin作为代理:

 

1.nginx 配置安装openssl 模块:

Nginx开启SSL模块:

切换到源码包:

cd /usr/src/nginx-1.5.9

查看nginx原有的模块

/usr/local/nginx/sbin/nginx -V

 在configure arguments:后面显示的原有的configure参数如下:

--prefix=/usr/local/nginx --with-http_stub_status_module

二:从新配置SSL模块:
进入nginx源码包目录,运行:

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

配置完成后,运行命令make命令:

make

注意:此处不能进行make install,否则就是覆盖安装

 

三:替换已安装好的nginx包
替换之前先备份:

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

先停止nginx服务:

//从容停止Nginx:

/usr/local/nginx/sbin/nginx -s quit 

//快速停止Nginx:

/usr/local/nginx/sbin/nginx -s stop 

 

将刚刚编译好的nginx覆盖掉原有的nginx

cp ./objs/nginx /usr/local/nginx/sbin/

 

然后启动nginx,仍可以通过命令查看是否已经加入成功

/usr/local/nginx/sbin/nginx -V

 

此时应该显示为即配置成功:

configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

 

2.配置nginx

证书可以自己生成,也可以在阿里云购买一个免费的.

server {
        listen  443 ssl; #nginx 版本大于1.15
        server_name  henanhz.cn;
        root html;


        ssl_certificate cert/henanhz.cn.pem;
        ssl_certificate_key cert/henanhz.cn.key;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCMSHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用该协议进行配置。
        ssl_prefer_server_ciphers on;

        location / {
            root   html;
            index  index.html index.htm;
        }


        location /km_server{ # 这里一定要少一个斜杠 不然会出现post请求转发成get请求
#               proxy_method POST;
                proxy_pass http://a.cn;
#               proxy_redirect off;
#               proxy_set_header X-Real-IP $remote_addr;
#               proxy_set_header XForwarded-For $proxy_add_x_forwarded_for;
        }

然后再添加一个配置: 因为https转发htpp请求默认转发到80端口.然后再转发到7070自己的服务器.

   server {
        listen 80;
        server_name a.cn;
        location /{
            proxy_pass http://localhost:7070;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header XForwarded-For $proxy_add_x_forwarded_for;

            }

        }

 

 

 

你可能感兴趣的:(nginx,代理post请求,post请求变成get)