鍍金池/ 問(wèn)答/PHP  Linux/ nginx 反向代理 swoole

nginx 反向代理 swoole

項(xiàng)目使用 Laravel.

首先說(shuō)明的是,Nginx 單獨(dú)跑在一個(gè) Docker 內(nèi),Php 單獨(dú)跑在另一個(gè) Docker 內(nèi),目前在 PhpDocker 中開(kāi)啟 Swoole,且在本容器內(nèi)通過(guò) http://127.0.0.1:1215(swoole監(jiān)聽(tīng)的端口),可以正常輸出結(jié)果. 但是通過(guò) Nginx 轉(zhuǎn)發(fā)訪問(wèn)的時(shí)候,就不行了,直接輸出了 Laravel 的 public 文件夾下的 index.php 內(nèi)容,而不是執(zhí)行 php index.php...

下面是詳細(xì)的配置信息.

http {
    server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;

        root /var/www/track/public;
        index index.php index.html index.htm;

        # Make site accessible from http://localhost/
        server_name *.baixing.cn *.baixing.com;

        # Add stdout logging
        error_log /var/log/nginx/error.log warn;
        access_log /var/log/nginx/access.log;

        #gzip
        gzip on;
        gzip_comp_level 6;
        gzip_types text/css application/javascript text/xml application/json application/xml image/jpeg; # append to default: text/html
        gzip_vary off; #代碼中會(huì)輸出完整的vary頭
        gzip_disable "msie6";
        gzip_min_length 66;

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

希望有這方面經(jīng)驗(yàn)的能給予些幫助,謝謝~~~~

clipboard.png

回答
編輯回答
魚(yú)梓

首先看你直接輸出了,典型的 PHP_FPM 沒(méi)執(zhí)行,將其當(dāng)文件了,問(wèn)題出在這里,我看一下你的DockerFile或者docker-compose.yml
這里我覺(jué)得有點(diǎn)問(wèn)題,你直接將其代理到這個(gè)IP去了,你在docker里設(shè)這個(gè)IP了嗎?

    if (!-e $request_filename) {
        proxy_pass http://192.168.10.2:1215;
    }
2017年12月25日 00:32