• nginx服务器配置/websocket nginx 配置笔记


    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

    https://www.cnblogs.com/piperck/p/7066286.html

  • 相关阅读:
    开源框架.netCore DncZeus学习(五)下拉树的实现
    开源框架.netCore DncZeus学习(四)项目升级
    github下载更新代码到本地
    AndroidStudio替换空行
    Ext.net获取选中行数据
    OZCode
    禁止密码显示框
    Android layout_weight理解
    微信页面关于点击按钮关注公众号放到链接里无关注按钮
    进入页面就触发了popstate事件。
  • 原文地址:https://www.cnblogs.com/lxwphp/p/15454728.html
Copyright © 2020-2023  润新知