nginx 反向代理 swoole

项目使用 Laravel.

首先说明的是,Nginx 单独跑在一个 Docker 内,Php 单独跑在另一个 Docker 内,目前在 PhpDocker 中开启 Swoole,且在本容器内通过 http://127.0.0.1:1215(swoole监听的端口),可以正常输出结果. 但是通过 Nginx 转发访问的时候,就不行了,直接输出了 Laravel 的 public 文件夹下的 index.php 内容,而不是执行 php index.php...

下面是详细的配置信息.

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; #代码中会输出完整的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;
            }
        }
    }
}

希望有这方面经验的能给予些帮助,谢谢~~~~

clipboard.png

阅读 3.3k
1 个回答

首先看你直接输出了,典型的 PHP_FPM 没执行,将其当文件了,问题出在这里,我看一下你的DockerFile或者docker-compose.yml
这里我觉得有点问题,你直接将其代理到这个IP去了,你在docker里设这个IP了吗?

    if (!-e $request_filename) {
        proxy_pass http://192.168.10.2:1215;
    }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题