设为首页 收藏本站
查看: 978|回复: 0

[经验分享] nginx服务器配置/websocket nginx 配置笔记

[复制链接]

尚未签到

发表于 2017-12-22 14:03:30 | 显示全部楼层 |阅读模式
  

server {  listen
80;  server_name xxx.com;
  # add_header   
'*' ;  location
/u/ {  # 反向代理透传客户端ip
  proxy_set_header X
-Real-IP $remote_addr;  proxy_set_header X
-Forwarded-For $proxy_add_x_forwarded_for;  proxy_set_header Host $http_host;
  proxy_set_header X
-NginX-Proxy true;  

  proxy_pass http:
//127.0.0.1:8001;  
        proxy_redirect off;
  }
  

  location /c/ {
  proxy_pass http://127.0.0.1:8002;
  
        # WebScoket Support
  proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";
  

  proxy_set_header Origin xxx;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header Host $http_host;
  proxy_set_header X-NginX-Proxy true;
  }
  
}
  

  先备份一波这个配置。
  首先为服务器设置监听端口,然后是服务的域名。
  location的具体用法可以参看reference的第二篇文章介绍得非常详细。我这里使用/u/匹配我的路径以/u/开头下都使用这个下面{}中的配置。
  下面我依次介绍各参数作用:
  

proxy_set_header X-Real-IP $remote_addr;               # 远端真实ip地址  
proxy_set_header X
-Forwarded-For $proxy_add_x_forwarded_for;   # 反向代理之后转发之前的ip地址  
proxy_set_header Host $http_host;                    # http请求的主机域名
  
proxy_set_header X
-NginX-Proxy true;                 # nginx代理  

  这些参数都是在nginx反向代理中使用的。
  

proxy_pass http://127.0.0.1:8001;    # 反向代理转发地址  
proxy_redirect off;                  # 代理是否支持重定向
  

  下面匹配/c/路径下的,是我的websocket转发服务。跟上面不同的是,他需要再header里面加入下面内容
  

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

  升级http1.1到 websocket协议。另外有一个特别值得注意的地方是,如果websocket服务器在收到websocket握手包,查看Origin信息与所在域信息不符的话。会直接拒绝服务。这点很坑,我花了接近半天的时间来找为什么连不上的原因,最后竟然发现是Origin 必须和请求地址在一个域,不然会被拒绝访问并且返回403.
  另外以上的所有配置里面的变量都是可以通过get_header里面的信息拿到并且获取的。
  根据各不同想更详细查看配置的 可以查阅nginx的官网和reference。
  以上。
  Reference:
  https://segmentfault.com/n/1330000006925038 nginx 配置文件梳理
  http://seanlook.com/2015/05/17/nginx-location-rewrite/ nginx配置location总结及rewrite规则写法
  http://www.ha97.com/5194.html (总结)Nginx配置文件nginx.conf中文详解
  http://nginx.org/en/docs/http/websocket.html WebSocket proxying

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-426841-1-1.html 上篇帖子: CentOS7.0安装Nginx-1.12.0 下篇帖子: nginx 499 状态码优化
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表