反向代理

由于 Swoole Server 对 HTTP 协议的支持并不完整,建议仅将 SW-X 作为后端服务,并且在前端增加 NGINX 或 APACHE 作为代理,参照下面的例子添加转发规则

Nginx

server {
            root 绑定个目录,但不建议指定到server的目录,这样不安全;
            server_name 你的域名;

            # 解决静态文化访问问题
            # 注意:2.0.7版本后支持在框架配置文件中直接设置静态文件访问目录
            location /public/ {
                root 你的静态根地址,不能带public;
            }

            location / {
                proxy_http_version 1.1;
                proxy_set_header Connection "keep-alive";
                proxy_set_header X-Real-IP $remote_addr;
                if (!-f $request_filename) {
                    proxy_pass http://127.0.0.1:9502;
                }
            }
        }

代理之后,可通过$this->header()中的x-real-ip获取客户端真实ip

Apache

<IfModule mod_rewrite.c>
            Options +FollowSymlinks
            RewriteEngine On
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteCond %{REQUEST_FILENAME} !-f
            #RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]  fcgi下无效
            RewriteRule ^(.*)$  http://127.0.0.1:9502/$1 [QSA,P,L]
            #请开启 proxy_mod proxy_http_mod request_mod
        </IfModule>