nginx配合laravel-s的websocket

2022-04-27 23:06:11 阅读:1 编辑
im.n8y.cn.conf
map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}
upstream swoole {
    # 通过 IP:Port 连接
    server 127.0.0.1:5200 weight=5 max_fails=3 fail_timeout=30s;
    # 通过 UnixSocket Stream 连接,小诀窍:将socket文件放在/dev/shm目录下,可获得更好的性能
    #server unix:/yourpath/laravel-s-test/storage/laravels.sock weight=5 max_fails=3 fail_timeout=30s;
    #server 192.168.1.1:5200 weight=3 max_fails=3 fail_timeout=30s;
    #server 192.168.1.2:5200 backup;
    keepalive 16;
}

server{
    listen       80;
    server_name  im.n8y.cn;
     root   /usr/local/nginx/html/im/public;
    # index index.html index.htm index.php;
    location /.well-known {
       allow all;
        default_type text/plain;
        }

    return 301 https://$server_name$request_uri;

}

server {
    listen  443 ssl;
    server_name  im.n8y.cn;
    root   /usr/local/nginx/html/im/public;
    index index.html index.htm index.php;
    ssl on;
    ssl_certificate /usr/local/nginx/ssl/im.n8y.cn/6581520_im.n8y.cn.pem;
    ssl_certificate_key /usr/local/nginx/ssl/im.n8y.cn/6581520_im.n8y.cn.key;

    #charset koi8-r;
    #access_log  /var/log/nginx/log/host.access.log  main;
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_log /var/log/nginx/ai.n8y.cn.error.log error;
    error_page   500 502 503 504  /50x.html;
    #location = /50x.html {
     #   root   /usr/share/nginx/html;
    #}

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

            location ~ \.php$ {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

                # With php5-cgi alone:
                #  fastcgi_pass 127.0.0.1:9000;
                fastcgi_pass unix:/dev/shm/php-cgi.sock;

                # With php5-fpm:
                # fastcgi_pass unix:/var/run/php-fpm/www.sock;
                 fastcgi_index index.php;
                 include fastcgi.conf;
        }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    location ~ /\.ht {
        deny  all;
    }

   location /.well-known {
       allow all;
        default_type text/plain;
        }
 location /ws {
        # proxy_connect_timeout 60s;
        # proxy_send_timeout 60s;
        # proxy_read_timeout:如果60秒内被代理的服务器没有响应数据给Nginx,那么Nginx会关闭当前连接;同时,Swoole的心跳设置也>会影响连接的关闭
        # proxy_read_timeout 60s;
        proxy_http_version 1.1;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Real-PORT $remote_port;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header Scheme $scheme;
        proxy_set_header Server-Protocol $server_protocol;
        proxy_set_header Server-Name $server_name;
        proxy_set_header Server-Addr $server_addr;
        proxy_set_header Server-Port $server_port;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_pass http://swoole;
    }

}