AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-1171386

AlexNikolaev94's questions

Martin Hope
AlexNikolaev94
Asked: 2024-11-13 02:36:36 +0800 CST

Proxy reverso Nginx para um servidor php-fpm remoto com fastcgi

  • 5

Tenho 2 instâncias do AWS EC2, uma das quais reside em uma sub-rede pública e está configurada para atuar como uma instância NAT , e executa Nginx. A outra instância reside em uma sub-rede privada, mas pode se comunicar com a pública. Os respectivos endereços IP das instâncias são, por exemplo:

  • 172.25.48.14 - Instância Nginx em uma sub-rede pública (172.25.48.0/28), tem um IP elástico atribuído
  • 172.25.48.140 - instância executando php-fpm em uma sub-rede privada (172.25.48.128/28)

A questão é que eu quero que este site seja acessível por uma certa URL - eu supus que o Nginx agisse como um servidor proxy reverso que mapeia solicitações para certos subdomínios ou URLs para recursos respectivos. Então, aqui está minha configuração do Nginx:

http {
    sendfile on;
    tcp_nopush on;
    types_hash_max_size 2048;
    server_names_hash_bucket_size 128;

    include /etc/nginx/mime.types;
    default_type text/html;

    proxy_headers_hash_bucket_size;
    access_log /var/log/nginx/access.log
    error_log /var/log/nginx/error.log

    server {
        listen 80;

        location ~ ^/site1(.*)$ {
            # These are commented out because no matter if specified or not the result is the same
            # index index.php;
            # try_files $uri $uri/ /site1/index.php?$request_uri;
            location ~ \.php$ {
                include fastcgi.conf;
                try $uri =404;

                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass 172.25.48.140:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
            }
        }
    }
}

E aqui está, respectivamente, a configuração do pool php-fpm para o site na instância privada:

[site1]
user = www-data
group = www-data
listen = 172.25.48.140:9000
listen.allowed_clients = 172.25.48.14, 172.25.48.140, 127.0.0.1
php_admin_value[disable_functions] = exec, passthru, shell_exec, system
php_admin_flag[allow_url_fopen] = off
pm = dynamic
pm.max_children = 10
pm.start_servers = 1
pm.min_spare_servers = 1
pm.max_spare_servers = 8
pm.process_idle_timeout = 30s
pm.status_path = /php_status
ping.path = /ping
ping.response = wrrrrrrrrryyyyyyyyyyy
access.log = /var/log/php/8.3/$pool.access.log
access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{milli}d %{kilo}M %C%%"

Para simplificar, vamos supor que eu tenha apenas um único index.phparquivo, que também reside na instância privada em /apps/site1/, que tem um link simbólico em /var/www/html/site1.

O problema é que não importa o que eu tente, recebo 404, e a julgar pelos logs no lado da instância privada, a solicitação nem chega lá - mesmo sabendo que tenho os grupos de segurança da instância configurados corretamente e nas portas certas, porque, de outra forma, posso conectar da instância privada para a pública e vice-versa sem problemas. A única vez que recebi uma solicitação para o php-fpm (embora um 404 também) foi quando movi a pesquisa de "localização" mais profunda (aquela que corresponde aos scripts .php) para o nível superior do servidor - então, basicamente, a solicitação foi direto para 172.25.48.14, e não para 172.25.48.14/site1como eu pretendia.

Estou esquecendo de algo? O problema pode ser que os arquivos de origem estão localizados na mesma instância que o php-fpm, e não no lado do Nginx? Estou entendendo errado o conceito de como ele funciona? Por favor, se você tiver alguma ideia sobre isso, ficarei extremamente grato pela sua ajuda. Obrigado antecipadamente!

nginx
  • 1 respostas
  • 43 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve