半霜
2018-04-03 03:07
采纳率: 100%
浏览 5.6k
已采纳

Nginx能否监听443端口进行8089端口的反向代理

在开发微信小程序时,微信官方需要全局使用443端口。
在小程序中我们使用了emqtt服务,然后我们的后台跑在iis上。
iis上的项目端口号用的8089,emqtt服务的端口是8083.
我们想要使用Nginx监听443端口,
当监听到访问443端口并且为/mqtt时Nginx代理为8083端口。
当监听到/app时代理为8089端口。
可是我在写完/app后,Nginx仅仅只是帮我做了转发,网页提示网页并不能提供
安全链接。
加上了#proxy_set_header Host $host; 后 网页提示重定向次数过多。

以下是Nginx 的配置


#user  nobody;
worker_processes  1;

error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http{

    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;


    server {
        listen 443 ssl;
        server_name  www.brhein.cn;

        #配置ssl证书
        ssl on;
        ssl_certificate Nginx_SSL/1_www.brhein.cn_bundle.crt;
        ssl_certificate_key Nginx_SSL/2_www.brhein.cn.key; 

        #设置编码格式
        #charset utf-8;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #服务端要支持 协议配置
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
        ssl_prefer_server_ciphers on;
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  5m;


############################################################
     # 将Https的转发到IIS上面的8089端口
     # IIS 
     # listen    :   www.domain.cn:443/app
     # redirect  :   www.domain.cn:8089/app
############################################################


        # 监听app
        location /app/ {
            proxy_pass http://www.domain.cn:8089;

            #proxy_set_header Host $host;

        }   


############################################################
     # emqtt的wss使用的是8084端口,则监听443端口的\mqtt 检测到就转到8084端口
     # mqtt
     # listen    :   www.domain.cn:443/app
     # redirect  :   www.domain.cn:8089/app
############################################################


        # 监听mqtt
        location /mqtt {
            proxy_pass http://www.domain.cn:8083;

            #proxy_set_header Sec-WebSocket-Protocol mqtt;
            #more_clear_headers Sec-WebSocket-Protocol;

            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";

            #proxy_set_header Host $host;

        }  

    }



}




  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • 半霜 2018-12-26 14:22
    已采纳

    最终还是放弃反向代理,用别的方式完成了这个东东,啊哈哈

    打赏 评论
  • _1_1_7_ 2018-04-03 03:16
    打赏 评论
  • lzjdhgy 2018-04-03 03:33

    proxy_pass http://www.domain.cn:8089/; 后面加斜杠试试

    打赏 评论
  • weixin_40723467 2018-04-03 03:35
    打赏 评论
  • weixin_40723467 2018-04-03 03:38

    proxy_pass http://www.domain.cn:8089/; 后面加斜杠试试

    打赏 评论

相关推荐 更多相似问题