Não é possível conectar-se ao Nginx a partir do navegador remoto (problema estranho)

1

Eu tenho um problema muito estranho com o Nginx, não consigo acessá-lo no meu navegador.

Instalei uma máquina virtual do CentOS 7 em meu computador com Nginx, PHP-FPM e MariaDB instalados e configurados.

A configuração do Nginx é a seguinte:

server {
listen       80;
server_name  localhost;

#charset koi8-r;
#access_log  /var/log/nginx/log/host.access.log  main;

location / {
    root   /path/to/www
    index  index.php;
    try_files $uri $uri/ /index.php?$args;
}

#error_page  404              /404.html;

# redirect server error pages to the static page /50x.html
#
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$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    try_files $uri $uri/ = 404;
    root   /path/to/www/;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

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

Eu também configurei o Iptables com as seguintes regras:

INPUT_ZONES  all  --  anywhere             anywhere            
ACCEPT     icmp --  anywhere             anywhere            
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:mysql

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
OUTPUT_direct  all  --  anywhere             anywhere            
ACCEPT     tcp  --  anywhere             anywhere             tcp spt:http
ACCEPT     tcp  --  anywhere             anywhere             tcp spt:https
ACCEPT     tcp  --  anywhere             anywhere             tcp spt:mysql

E eu também decidi desativar o SELinux por enquanto ...

Para finalizar, ao executar "tcpdump port 80", recebo esta mensagem ao tentar acessar o servidor web:

listening on enp0s3, link-type EN10MB (Ethernet), capture size 65535 bytes
19:39:51.574889 IP 192.168.56.1.59338 > 192.168.56.101.http: Flags [S], seq 2033938019, win 65535, options [mss 1460,nop,wscale 4,nop,nop,TS val 551897257 ecr 0,sackOK,eol], length 0

E o navegador do meu computador diz que não pode se conectar ao servidor especificado ...

Tem alguma ideia do que pode causar este problema? Eu senti falta de alguma coisa?

Desculpe por esta longa mensagem, mas eu realmente não tenho ideia do que fazer agora.

Obrigado

    
por gnoirzox 24.08.2015 / 21:33

2 respostas

5

Suas regras de firewall rejeitam todo o tráfego de entrada.

Você tentou lidar com isso adicionando regras manualmente para permitir conexões HTTP, HTTPS e MySQL, mas isso não funciona, pois elas já foram rejeitadas por uma regra anterior.

Além disso, seu sistema está executando o firewalld.

Para resolver o problema, você deve usar o firewalld para gerenciar suas regras de firewall.

Por exemplo:

firewall-cmd --add-service=http
firewall-cmd --add-service=https
firewall-cmd --add-service=mysql

Para fazê-los persistir, execute:

firewall-cmd --runtime-to-permanent

(Este último requer que você tenha atualizado pelo menos para o CentOS 7.1.)

    
por 24.08.2015 / 21:38
0

Eu corro centos7 e encontro o mesmo problema, depois que eu instalei o nginx. Embora o nginx esteja rodando, mas o acesso do broswer, eu resolvi por isto a partir deste postar .

execute os seguintes comandos para permitir o tráfego HTTP e HTTPS

sudo firewall-cmd --permanent --zone=public --add-service=http 
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
    
por 06.05.2017 / 11:09