Nginx tidak mengambil situs di situs yang diaktifkan?


103

Setelah lebih dari 10 jam penelitian, saya belum tahu mengapa ini tidak berhasil! Saya mencoba memindahkan localhost saya ke folder yang mendukung situs saya yang ada di / etc / nginx / sites-enabled / default.

Ini adalah symlink dari folder yang tersedia di situs. Saat menggunakan konfigurasi berikut, saya mendapatkan "tidak dapat terhubung" menggunakan localhost: 8080 sebagai alamat saya

nginx.conf (/usr/local/nginx/conf/nginx.conf):

user  www-data;
worker_processes  2;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    include /etc/nginx/sites-enabled/*; 
}

situs-tersedia (/ etc / nginx / sites-available / default):

server {
  listen   8080;
  root /home/myusername/myown/customdirectory;
  index index.php index.html index.htm;
  server_name localhost;

    location / {
        try_files $uri $uri/ /index.html;
    }

    location /doc/ {
        alias /usr/share/doc/;
        autoindex on;
        allow 127.0.0.1;
        allow ::1;
        deny all;
    }


    error_page 404 /404.html;

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

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

    location ~ /\.ht {
        deny all;
    }
}

Saya bisa mendapatkan ini berfungsi jika saya meletakkan info yang relevan dari situs yang tersedia ke nginx.conf, saya hanya tidak tahu mengapa tidak berfungsi seperti ini?

Terima kasih!


2
Apakah Anda yakin bahwa symlink tersebut tidak rusak? ls -l / etc / nginx / sites-enabled /
catalin.costache

1
Ya, saya memeriksa ulang symlink, masih belum berhasil
Discorick


Jawaban:


198

Saya memiliki masalah yang sama. Itu karena saya tidak sengaja menggunakan jalur relatif dengan tautan simbolis.

Apakah Anda yakin Anda menggunakan jalur lengkap, misalnya:

ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf

Bagi saya ini juga memperbaikinya! Terima kasih!
Sander Versluys

4
Terima kasih telah menyelamatkan hidup saya!
MatTheCat

4
Mungkin ada masalah dengan jalur yang salah di tautan relatif lebih dari sekadar tautan relatif sama sekali. Misalnya, jika tautan Anda tidak dimulai dengan ../untuk melintasi satu direktori, lalu enter sites-available. Jika Anda bisa catmendapatkan symlink dan mendapatkan output, Nginx harus membacanya juga seperti yang dikatakan @Hannes. Menggunakan jalur absolut hanya membuat jalur yang salah jauh lebih sulit dilakukan.
Bryson

bukankah ada alat baris perintah untuk mendapatkan jalur absolut dari sebuah file?

Tidak percaya ini masalahnya. Tidak akan menduga untuk memeriksa ini! Terima kasih!
phouse512

36

Berubah dari:

include /etc/nginx/sites-enabled/*; 

untuk

include /etc/nginx/sites-enabled/*.*; 

memperbaiki masalah saya


2
memperbaiki masalah untuk saya juga di Ubuntu 16.xx
Jan Wiemers

2
bagaimana Anda mengetahui hal ini? Ini berhasil bagi saya, tetapi ini tidak jelas
jauh

2
ini diperbaiki untuk saya saat bermain dengan nginx dan Docker.
Eugen

1
ditto, memperbaikinya pada gambar ubuntu / trusty64
Bryan A

2
Itulah masalahnya bagi saya! Tetapi dalam kasus saya, itu mencari * .conf dan milik saya memiliki akhir yang berbeda. Gila aku membuang-buang waktu berjam-jam untuk ini!
Nigel

16

Sertakan sites-available/defaultdalam sites-enabled/default. Ini hanya membutuhkan satu baris.

Dalam sites-enabled/default(versi konfigurasi baru?):

Tampaknya jalur penyertaan relatif terhadap file yang menyertakannya

include sites-available/default;

Lihat includedokumentasinya .


Saya percaya bahwa versi nginx tertentu memungkinkan penyertaan / penautan ke file lain hanya dengan memiliki satu baris dengan jalur relatif ke file yang disertakan. (Setidaknya seperti itulah yang terlihat di beberapa file konfigurasi "warisan" yang telah saya gunakan, sampai versi nginx baru memecahkannya.)

Dalam sites-enabled/default(versi konfigurasi lama?):

Tampaknya jalur penyertaan relatif terhadap file saat ini

../sites-available/default
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.