2018-08-24 frp+nginx 反向代理https

只是在nginx作为https,内部网络仍然是采用的http,配置server

map $http_x_forwarded_for $clientRealip {
   "" $remote_addr;
   ~^(?P<firstAddr>[0-9\.]+),?.*$  $firstAddr;
}

 #配置https
server {
    listen 443;
    server_name one.domain.cn;
    ssl on;
    root html;
    index index.html index.htm;
    ssl_certificate   cert/hehe.pem;
    ssl_certificate_key  cert/hehe.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $clientRealip;  # $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

#配置一般的域名    
server {
       listen 80;
       server_name tow.domain.cn;  #为frp的控制台绑定一个域名,这样你就可以用http:// tow.domain.cn访问你的控制台了
       location / {
           proxy_pass http://127.0.0.1:8888;  #此处的6443就是你安装frp时设置的dashboard_port端口
           proxy_set_header Host $host;
           proxy_set_header X-Real-IP $clientRealip;  # $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       }
}

#配置通用的域名    
server {
       listen 80;
       server_name *.domain.cn; #将所有的domain.cn子域名都绑定,这样就不用客户端填写一个你设置一个了,这样你可以用http://lisi-route.domain.cn或http://zhangsan-route.domain.cn访问你的穿透服务了。
       location / {
           proxy_pass http://127.0.0.1:8080; #此处的7080就是你安装frp时设置的vhost_http_port端口
           proxy_set_header Host $host;
           proxy_set_header X-Real-IP $clientRealip;  # $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       }
}

值得注意的是nginx只写下面这个会报错的

  proxy_pass http://127.0.0.1:8080;

必须加上这些才行,什么意思我还要去看看

map $http_x_forwarded_for $clientRealip {
   "" $remote_addr;
   ~^(?P<firstAddr>[0-9\.]+),?.*$  $firstAddr;
}
...
proxy_set_header Host $host;
proxy_set_header X-Real-IP $clientRealip;  # $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一章 Nginx简介 Nginx是什么 没有听过Nginx?那么一定听过它的“同行”Apache吧!Ngi...
    JokerW阅读 32,836评论 24 1,002
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,198评论 19 139
  • 上一篇《WEB请求处理一:浏览器请求发起处理》,我们讲述了浏览器端请求发起过程,通过DNS域名解析服务器IP,并建...
    七寸知架构阅读 81,376评论 21 356
  • 昨天晚上吃饭后,打开手机,习惯性地打开得到,猛然看见有吴军老师的直播,我差点忘记了,吓了一跳。 手机快没电了,我赶...
    amazing2017阅读 291评论 0 2
  • 吃完晚饭,邻居家孩子又过来找萱萱玩儿,直到八点才走,然后我赶紧收拾屋子,陪萱萱读书练琴,书很顺利读下来,练琴又偷懒...
    Jenny2011阅读 181评论 0 0