Problema do Nginx Config para o Ghost Blog dentro de um subdiretório em um servidor LEMP

1

Meus requisitos

  1. Blog fantasma em www.mydomain.com/blog

  2. Um index.html, contact.php, algumas imagens e arquivos js no diretório raiz. (ou seja, algo como www.mydomain.com/index.html, mydomain.com/contact.php, etc)

Depois de ler este tutorial link , eu sou capaz de executar fantasma em www.mydomain.com/blog. Mas infelizmente, eu não consigo acessar nada do diretório raiz, por exemplo, www.mydomain.com, pois ele gera um erro 404

Antes da instalação do Ghost Tudo dentro de /usr/share/nginx/www estava disponível no diretório raiz. Agora, eu usei o comando ls para verificar se os arquivos estão presentes dentro da pasta /usr/share/nginx/www e posso ver esses arquivos no meu terminal.

Quando eu cd to /etc/nginx/sites-available/ pasta, eu posso ver 2 arquivos fantasma e padrão e dentro de /etc/nginx/sites-enabled/ eu posso ver apenas fantasma < arquivo / strong>.

Quando copio o arquivo padrão de /etc/nginx/sites-available/ para /etc/nginx/sites-enabled/ , o Blog do Ghost apresenta um erro 404.

Aqui está o conteúdo do arquivo padrão         servidor {                 listen 80 default_server;                 listen [::]: 80 default_server ipv6only = on;

            root /usr/share/nginx/html;
            index index.php index.html index.htm;

            # Make site accessible from http://localhost/
            server_name localhost;

            location / {
                    # First attempt to serve request as file, then
                    # as directory, then fall back to displaying a 404.
                    try_files $uri $uri/ =404;
                    # Uncomment to enable naxsi on this location
                    # include /etc/nginx/naxsi.rules
            }

            error_page 404 /404.html;
            error_page 500 502 503 504 /50x.html;
            location = /50x.html {
                    root /usr/share/nginx/html;
            }

            location ~ \.php$ {
                    try_files $uri =404;
                    fastcgi_split_path_info ^(.+\.php)(/.+)$;
                    fastcgi_pass unix:/var/run/php5-fpm.sock;
                    fastcgi_index index.php;
                    include fastcgi_params;
            }

            error_page 500 502 503 504 /50x.html;
            location = /50x.html {
                    root /usr/share/nginx/html;
            }

            location ~ \.php$ {
                    try_files $uri =404;
                    fastcgi_split_path_info ^(.+\.php)(/.+)$;
                    fastcgi_pass unix:/var/run/php5-fpm.sock;
                    fastcgi_index index.php;
                    include fastcgi_params;
            }

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

Aqui está o conteúdo do fantasma

    server {
        listen 80;
        server_name SERVERIP/spider;
        location / {
            proxy_set_header   X-Real-IP $remote_addr;
            proxy_set_header   Host      $http_host;
            proxy_pass         http://127.0.0.1:2368;
        }
    }
    
por Prashant 24.11.2015 / 07:43

2 respostas

0

Encontrei a solução depois de uma pesquisa intensiva no Google

Agora, primeiro eu copiei o arquivo padrão Ghost Config da pasta sites disponíveis para a pasta sites habilitados usando

cp /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default

Após o arquivo copiado, reiniciei o nginx usando o seguinte comando service nginx restart

Agora, quando atualizei a página, não consegui ver meu blog, mas tudo da pasta /usr/share/nginx/www está disponível no diretório raiz. ou seja, todos os arquivos dessa pasta estavam acessíveis em mydomain.com

Voltando ao Blog do Ghost agora, fiz um backup do mesmo e o removi da pasta /etc/nginx/sites-enabled/default .

Em vez disso, colei o código a seguir dentro do objeto do servidor.

location ^~ /blog {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;

    proxy_pass http://127.0.0.1:2368;
    proxy_redirect off;
}

Nginx reiniciado, funcionou!

Fonte link

    
por 24.11.2015 / 08:55
0

Eu usei a solução abaixo do URL e funcionou.

server {
    listen       80;
    server_name  localhost;

  location ^~ /blog {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_set_header X-NginX-Proxy true;

      proxy_pass http://127.0.0.1:2368;
      proxy_redirect off;
  }
}

link

    
por 10.11.2016 / 03:20