Nginx केवल डिफ़ॉल्ट साइट कॉन्फिगर का जवाब देता है


1

मुझे नगीनों से कुछ परेशानी हुई। मैंने freenom.com के साथ दो डोमेन पंजीकृत किए: domain1.tk और domain2.tk। मैंने नेमसर्वर बदल दिए और इसलिए मेरा सर्वर सफलतापूर्वक freenom से जुड़ा हुआ है। यह काम करता है अगर मैं डिफ़ॉल्ट विन्यास छोड़ देता हूं। लेकिन, जब से मुझे 1 सर्वर में 2 साइटें चाहिए, मैंने इस गाइड का अनुसरण किया: https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-server-blocks-virtual-hosthost- ऑन-ubuntu-16-04और / etc / nginx / sites-available / में दो कॉन्फिग फाइल बनाई और दो सिम्बिक लिंक बनाए, और यह काम नहीं करता है। Nginx हमेशा प्रत्येक अनुरोध, दोनों domain1.tk और domain2.tk के डिफ़ॉल्ट डिफॉल्ट का उत्तर देता है और जाहिर है कि सर्वर आईपी भी। लेकिन अगर मैं "default.bak" में "डिफ़ॉल्ट" का नाम बदल देता हूं और मैं nginx सेवा को फिर से लोड करता हूं, तो यह कनेक्ट करने में असमर्थ है, न ही अगर मैं ब्राउज़र में आईपी टाइप करता हूं। तो nginx केवल डिफ़ॉल्ट रूप से उत्तर देता है। यहाँ विभिन्न विन्यास हैं:

डिफ़ॉल्ट कॉन्फ़िग फ़ाइल :

##
# You should look at the following URL's in order to grasp a solid understanding
# of Nginx configuration files in order to fully unleash the power of Nginx.
# http://wiki.nginx.org/Pitfalls
# http://wiki.nginx.org/QuickStart
# http://wiki.nginx.org/Configuration
#
# Generally, you will want to move this file somewhere, and start with a clean
# file but keep this around for reference. Or just disable in sites-enabled.
#
# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
##

# Default server configuration
#
server {
    listen 80 default_server;
    listen [::]:80 default_server;

    # SSL configuration
    #
    # listen 443 ssl default_server;
    # listen [::]:443 ssl default_server;
    #
    # Self signed certs generated by the ssl-cert package
    # Don't use them in a production server!
    #
    # include snippets/snakeoil.conf;

    root /var/www/html/;

    # Add index.php to the list if you are using PHP
    index index.php index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        try_files $uri $uri/ =404;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #   include snippets/fastcgi-php.conf;
    #
    #   # With php5-cgi alone:
    #   fastcgi_pass 127.0.0.1:9000;
    #   # With php5-fpm:
    #   fastcgi_pass unix:/var/run/php5-fpm.sock;
    #}
    location ~ \.php$ {
                try_files $uri =404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

                # With php5-cgi alone:
                #fastcgi_pass 127.0.0.1:9000;
                # With php5-fpm:
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                include /etc/nginx/fastcgi.conf;
        }

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


# Virtual Host configuration for example.com
#
# You can move that to a different file under sites-available/ and symlink that
# to sites-enabled/ to enable it.
#
#server {
#   listen 80;
#   listen [::]:80;
#
#   server_name example.com;
#
#   root /var/www/example.com;
#   index index.html;
#
#   location / {
#       try_files $uri $uri/ =404;
#   }
#}

domain1.tk config फाइल:

server {
        listen 80;
        listen [::]:80;

        root /var/www/html/domain1.tk;
        index index.php index.html index.htm index.nginx-debian.html;

        server_name domain1.tk www.domain1.tk;

        location / {
                try_files $uri $uri/ =404;
        }
}

domain2.tk config फाइल:

server {
        listen 80;
        listen [::]:80;

        root /var/www/html/domain2.tk;
        index index.php index.html index.htm index.nginx-debian.html;

        server_name domain2.tk www.domain2.tk;

        location / {
                try_files $uri $uri/ =404;
        }
}

nginx.conf:

user www-data;
worker_processes 4;
pid /run/nginx.pid;

events {
    worker_connections 768;
    # multi_accept on;
}

http {

    ##
    # Basic Settings
    ##

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    # server_tokens off;

    server_names_hash_bucket_size 64;
    # server_name_in_redirect off;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    ##
    # SSL Settings
    ##

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
    ssl_prefer_server_ciphers on;

    ##
    # Logging Settings
    ##

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

    ##
    # Gzip Settings
    ##

    gzip on;
    gzip_disable "msie6";

    # gzip_vary on;
    # gzip_proxied any;
    # gzip_comp_level 6;
    # gzip_buffers 16 8k;
    # gzip_http_version 1.1;
    # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

    ##
    # Virtual Host Configs
    ##

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}


#mail {
#   # See sample authentication script at:
#   # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
# 
#   # auth_http localhost/auth.php;
#   # pop3_capabilities "TOP" "USER";
#   # imap_capabilities "IMAP4rev1" "UIDPLUS";
# 
#   server {
#       listen     localhost:110;
#       protocol   pop3;
#       proxy      on;
#   }
# 
#   server {
#       listen     localhost:143;
#       protocol   imap;
#       proxy      on;
#   }
#}

संपादित करें:

# ls /etc/nginx/sites-enabled/
default  domain1.tk  domain2.tk

क्या Nginx त्रुटि / एक्सेस लॉग कुछ प्रासंगिक है? यदि हां, तो कृपया उन्हें शामिल करने के लिए अपने प्रश्न को संपादित करें।
टिम

नहीं, वे नहीं है।
AllExJ

ट्रिपल सुनिश्चित करें कि आपकी साइट कॉन्फिग फाइलों को nginx.conf द्वारा शामिल किया गया है - निर्देशिका और अनुमतियों की जाँच करें। यदि वह प्रत्येक साइट का कर्ल करने में मदद नहीं करता है और उस कर्ल से संबंधित किसी भी और सभी संबंधित लॉग प्रविष्टियों को शामिल करने के लिए अपने प्रश्न को संपादित करें। बस हमें लॉग की डंप न दें, कर्ल दिखाएं, फिर संबंधित त्रुटि / एक्सेस लॉग प्रविष्टि।
टिम

कृपयाls /etc/nginx/sites-enabled/
पॉल

@ जैसे ही आप nginx.conf में देखते हैं, इसमें शामिल हैं "/ etc / nginx / sites-enable-* *;" तो ये ठीक है। फिर आपने निर्देशिका और अनुमतियों की जांच करने के लिए कहा ... मुझे किस प्रकार की अनुमतियाँ निर्धारित करनी चाहिए? इसके अलावा, प्रवेश और त्रुटि लॉग में कुछ भी प्रासंगिक नहीं है। मैंने domain1.tk और domain2.tk को कॉन्फ़िगर करने वाले डिफ़ॉल्ट कॉन्फिगर को हटाने की कोशिश की, nginx को फिर से शुरू किया, और साइटों में प्रवेश करने की कोशिश की ... और जैसी कि उम्मीद थी, यह कनेक्ट करने में असमर्थ है। मैंने पहुंच और त्रुटि लॉग की जाँच की, और मेरा कनेक्शन प्रयास नहीं है
AllExJ

जवाबों:


-1

मैंने हल कर लिया। उस गाइड में, यह कमांड का उपयोग करने के लिए लिखा गया है ln -sलेकिन यह इस तरह से कभी काम नहीं करेगा। मैं अंत में कई दिनों के बाद पता लगाता हूं कि सही कमांड lsविकल्प के बिना है-s


मैं उबंटू से वास्तव में सबसे ज्यादा परिचित हूं, जिसमें डेबियन से थोड़ी अलग आज्ञा है। ln -sआदेश उबंटू, जो कि क्या करना ट्यूटोरियल के लिए लिखा जाता है में उपयोग करने के लिए सही कमांड है।
पॉल

1
ln -s एक फाइल को सॉफ्ट लिंक करने के बारे में है, ls फाइलों को सूचीबद्ध करने के बारे में है
Federico Galli

@Paul yep ... मैंने डेबियन को चलाया और मैं हालांकि ubuntu निर्देश और डेबियन istructions समान रूप से एक ही थे .. क्योंकि ubuntu डेबियन आधारित है
AllExJ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.