NGinx डिफ़ॉल्ट सार्वजनिक www स्थान?


302

मैंने पहले अपाचे के साथ काम किया है, इसलिए मुझे पता है कि डिफ़ॉल्ट सार्वजनिक वेब रूट आमतौर पर है /var/www/

मैंने हाल ही में nginx के साथ काम करना शुरू किया है, लेकिन मुझे डिफ़ॉल्ट सार्वजनिक वेब रूट नहीं मिल रहा है।

मुझे nginx के लिए डिफ़ॉल्ट सार्वजनिक वेब रूट कहां मिल सकता है?

जवाबों:


166

यदि आपके कॉन्फ़िगरेशन में कोई root /some/absolute/path;कथन शामिल नहीं है , या इसमें वह शामिल है जो किसी सापेक्ष पथ का उपयोग करता है root some/relative/path;, तो परिणामस्वरूप पथ संकलन-समय विकल्पों पर निर्भर करता है।

संभवतः एकमात्र मामला जो आपको शिक्षित अनुमान लगाने की अनुमति देगा कि आपके लिए इसका क्या अर्थ है, यदि आपने स्वयं स्रोत को डाउनलोड और संकलित किया है। उस स्थिति में, जो कुछ भी --prefixइस्तेमाल किया गया था , उसके सापेक्ष पथ होंगे । यदि आपने इसे नहीं बदला है, तो यह चूक करता है /usr/local/nginx। आप पा सकते हैं मापदंडों nginx के माध्यम से संकलित किया गया था nginx -V, यह --prefixपहले एक के रूप में सूचीबद्ध करता है।

चूँकि , rootनिर्देश निश्चित रूप से चूकता हैhtml , इसलिए यह /usr/local/nginx/htmlआपके प्रश्न का उत्तर होगा।

हालाँकि, यदि आपने किसी अन्य तरीके से नाज़िनक्स स्थापित किया है, तो सभी दांव बंद हैं। आपका वितरण पूरी तरह से भिन्न डिफ़ॉल्ट पथों का उपयोग कर सकता है। चीजों के लिए आपकी पसंद का वितरण किस तरह का चूक करता है, यह जानने के लिए सीखना एक और काम है।


32
आप शायद संकेत दे सकते हैं कि आप "nginx -V" (अपरकेस V) का उपयोग कर सकते हैं जो कि nginx को संकलित करने के लिए उपयोग किए गए कॉन्फ़िगरेशन तर्कों की खोज करता है।
कौफाउंडर

1
@kaufholdr सही है आप पाएंगे - Theprefix @ Gnarfoz का उल्लेख इस तरह दिखता है --prefix = / usr / share / nginx
Dung

6
यह इस बात पर भी निर्भर करता है कि अमेजन लिनक्स के लिए OS किस संस्थापन में है, निर्देशिका है: / usr / share / nginx / html
jeffmcneill

- उपसर्ग पथ हमेशा सही नहीं होता है। मेरे डेबियन 9 नगनेक्स पर उपसर्ग पथ स्थापित था "/ var / www / html" लेकिन जैसा कि यह बताता है कि एक्यूट डिफ़ॉल्ट पथ "/ usr / share / nginx / html" था। / Etc / nginx / sites-available / default में डिफ़ॉल्ट कॉन्फिगरेशन फाइल को देखने से पता चलता है कि --निफिक्स पथ के समान है। लेकिन /etc/nginx/conf.d/default.conf पर स्थित कॉन्फ़िगरेशन फ़ाइल ने रूट को / usr / share / nginx / html के रूप में सूचीबद्ध किया है। Default.conf फ़ाइल सामान्य डिफ़ॉल्ट फ़ाइल पर मिसाल कायम करती है। दोनों कॉन्फ़िगरेशन फ़ाइलों की जांच करना सुनिश्चित करें या आप गलत रूट के साथ काम कर रहे होंगे।
गुफाओं का आदमी

1
nginx -V 2>&1 | grep --color -o -e '--prefix=[^[:space:]]\+'आपको नग्नेक्स होम देता है।
1919

436

यदि उबटन का उपयोग करके उबंटू पर स्थापित किया जाता है, तो प्रयास करें /usr/share/nginx/www

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

हाल के संस्करणों में पथ बदल गया है: /usr/share/nginx/html

2019 EDIT:

में /var/www/html/index.nginx-debian.htmlभी कोशिश कर सकते हैं।


113
nginx 1.4.1 उबंटू में / usr / share / nginx / html में है
Nick Desaulniers

मैंने रास्पबेरी पर सिर्फ नगीनेक्स स्थापित किया है, डिफ़ॉल्ट निर्देशिका वही है जो लुफ़िक्स +1 द्वारा लिखी गई है। से raspbian डाउनलोड की गई पर apt-get
Mitro

4
बस पुष्टि की है कि CentOS 7.0 पर, यह है / usr / share / nginx / html साथ ही
djhaskin987

2
डेबियन apt-get, check / etc / nginx / available-sites / default pt मुझे वहां रास्ता मिल गया।
क्रिस .Zou

7
ubuntu 16/var
ब्राइट

65

डेबियन पर डिफ़ॉल्ट Nginx निर्देशिका है /var/www/nginx-default

आप फ़ाइल की जाँच कर सकते हैं: /etc/nginx/sites-enabled/default

और ढूंढें

server {
        listen   80 default;
        server_name  localhost;

        access_log  /var/log/nginx/localhost.access.log;

        location / {
                root   /var/www/nginx-default;
                index  index.html index.htm;
        }

मूल स्थान डिफ़ॉल्ट है।


5
CentOS में, मैंने पाया कि कोई / etc / nginx / sites-enable / folder नहीं है। वहाँ /etc/nginx/conf.d/ है और वहाँ दो फ़ाइलें server.conf और virtual.conf में यह सर्वर विवरण है। आप इसके लिए बाहर भी देख सकते हैं।
नफीस अहमद

1
नफीस की टिप्पणी को जोड़ने के लिए, conf.d निर्देशिका में फ़ाइल नाम .conf में समाप्त होना चाहिए या उन्हें नहीं उठाया जाएगा।
एतान होहेंस

1
यह केवल तभी लागू होता है जब डिफ़ॉल्ट साइट सक्षम होती है, और अनुरोध से मेल खाती है। अन्यथा डिफ़ॉल्ट जड़ है html
ऑरेंजडॉग

@OrangeDog default siteसक्षम होने पर कैसे जांचें ?
टिमो

1
@ इस जवाब में कहा गया है कि
ऑरेंजडॉग

43

'डिफ़ॉल्ट सार्वजनिक वेब रूट' को nginx -V आउटपुट से पाया जा सकता है:

nginx -V
nginx version: nginx/1.10.1
built with OpenSSL 1.0.2h  3 May 2016
TLS SNI support enabled
configure arguments: --prefix=/var/lib/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --pid-path=/run/nginx/nginx.pid --lock-path=/run/nginx/nginx.lock --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --user=nginx --group=nginx --with-ipv6 --with-file-aio --with-pcre-jit --with-http_dav_module --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --with-http_v2_module --with-http_auth_request_module --with-mail --with-mail_ssl_module

- उपसर्ग मान प्रश्न का उत्तर है। रूट के ऊपर के नमूने के लिए / var / lib / nginx है


1
हां, सबसे अच्छा, और क्रॉस-प्लेटफॉर्म।
जेसी एडेलमैन

यह हमेशा सही नहीं होता है "--prefix" का उपयोग कुछ सिस्टम पर किया जा सकता है लेकिन सभी पर नहीं। मैं मानता हूँ कि nginx -V आपको बहुत सारी जानकारी देता है जो फाइलों को ट्रैक करने में मदद करेगा, लेकिन यह OS पर निर्भर करता है। IEBS पर FreeBSD जो कुछ भी नहीं है, वह "--prefix" है, लेकिन "/ usr / लोकल / www" और कुछ लिनक्स डिस्ट्रोस में भी इसका खामियाजा भुगतना पड़ सकता है। यह विन्यास में देखने के लिए सबसे अच्छा है।
मिकेक

"--prefix" GNU मानक द्वारा परिभाषित चर है - gnu.org/prep/standards/html_node/Directory-Variables.html देखें ।
सर्ज एस

"--prefix" GNU मानक द्वारा परिभाषित चर है - gnu.org/prep/standards/html_node/Directory-Variables.html देखें । nginx मानकों का पालन करता है। यदि आप कॉन्फ़िगरेशन फ़ाइल में रूट या स्थान को परिभाषित नहीं करते हैं (--conf- पथ पर निर्भर करता है) उपसर्ग दिखाएगा कि 'डिफ़ॉल्ट सार्वजनिक वेब रूट' कहाँ स्थित है। और यह ओएस पर निर्भर नहीं करता है, हालांकि एक ओएस वितरण के साथ आपूर्ति की गई पैकेज भी एक कॉन्फ़िगरेशन की आपूर्ति कर सकता है जो बदले में 'डिफ़ॉल्ट सार्वजनिक वेब रूट' को फिर से परिभाषित करता है।
सर्ज एस

इसलिए एल्गोरिथ्म: nginx -V आउटपुट में --conf-path देखें । यदि स्थान / या रूट को विन्यास में पुनर्परिभाषित नहीं किया गया है - 'डिफ़ॉल्ट सार्वजनिक वेब रूट' स्थान के लिए --prefix
सर्ज एस

25

काढ़ा के साथ nginx स्थापित मैक ओएस एक्स पर डिफ़ॉल्ट निर्देशिका बनाता है:

/usr/local/var/www

इसलिए:

root html

माध्यम

root /usr/local/var/www/html

कोई HTML निर्देशिका नहीं है, इसलिए इसे मैन्युअल रूप से बनाना होगा।


1
MacOS और होमब्रे का उल्लेख करने के लिए +1। हालांकि, मैंने पाया कि हालांकि root html, index.htmlऔर 50x.htmlसीधे अंदर डाल दिया गया है /usr/local/var/www। इसलिए, मुझे htmlफ़ोल्डर के अस्तित्व पर संदेह है । क्या आप मुझे इसके साथ कुछ मदद दे सकते हैं?
iplus26

3
"काढ़ा जानकारी नग्नेक्स" आउटपुट में सूचीबद्ध डॉकरोट देता है। लेकिन nginx config में "root html" निर्दिष्ट करने से उस nginx config के लिए docroot बदल जाता है।
19

1
मेरे लिए (MAC OS X El Capitan 10.11.5) और काढ़ा (1.1.5), निर्देशिका वह /usr/local/Cellar/nginx/1.10.2_1/html जगह थी जहां 1.10.2_1 नगीन संस्करण है।
योगेश यादव

2
मेरे काढ़ा को स्थापित करने पर सेलर निर्देशिका एक सिम्लिंक है: /usr/local/Cellar/nginx/1.12.0_1/html -> ../../../var/www/और nginx -V शो: --prefix=/usr/local/Cellar/nginx/1.12.0_1तो root htmlउस लिंक के माध्यम से पुनर्निर्देशित किया जाता है।
मार्क एडिंगटन

@ iplus26 एचटीएमएल निर्देशिका पहले से ही उपलब्ध /usr/local/Cellar/nginx/1.12.2_1/html, मुझे लगता है कि / usr / स्थानीय / var / www सिर्फ एक लिंक
Kanagavelu Sugumar

21

आप बस nginx के रूट फ़ोल्डर को अपनी वेबसाइट के स्थान पर मैप कर सकते हैं :

nano /etc/nginx/sites-enabled/default

डिफ़ॉल्ट फ़ाइल के अंदर , सर्वर टैग में रूट की तलाश करें और अपनी वेबसाइट के डिफ़ॉल्ट फ़ोल्डर को बदलें, जैसे कि मेरी वेबसाइटें / var / www

server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;

        root /var/www; <-- Here!
...

जब मैं nginx, apache2 और lighttpd का मूल्यांकन कर रहा था, मैंने उन सभी को मेरी वेबसाइट / var / www पर बैठे हुए मैप किया । मुझे कुशलता से मूल्यांकन करने का यह सबसे अच्छा तरीका लगा।

फिर आप अपनी पसंद के सर्वर को शुरू / बंद कर सकते हैं और देख सकते हैं कि कौन सबसे अच्छा प्रदर्शन करता है।

जैसे

service apache2 stop
service nginx start

Btw, nginx वास्तव में बहुत तेज है!


19

जैसा कि अधिकांश उपयोगकर्ताओं ने कहा, यह इस मार्ग के तहत है:

/usr/share/nginx/html

यह डिफ़ॉल्ट पथ है, लेकिन आप हालांकि अपना बना सकते हैं।

आपको केवल वेब सर्वर रूट ट्री में एक बनाने की आवश्यकता है और इसे कुछ अनुमतियाँ "0777 नहीं" दें और केवल एक उपयोगकर्ता के लिए और केवल उस उपयोगकर्ता को दिखाई दे, लेकिन पथ का अंत पथ के अंत से सभी को दिखाई देता है आपकी फ़ाइलों और फ़ोल्डरों को जनता द्वारा देखा जाएगा।

उदाहरण के लिए, आप इस तरह से एक बना सकते हैं:

home_web/site1/public_html/www/

जब भी आप Nginx में एक वर्चुअल होस्ट बनाते हैं, तो आप अपना रूट पथ कस्टमाइज़ कर सकते हैं, बस अपने सर्वर ब्लॉक में ऐसा कुछ जोड़ें:

 server {
    listen  80;
        server_name  yoursite.com;

root /home_web/site1/public_html/www/;
}

हां तुम सही हो। मैंने सिर्फ अपने सेंटो 7 पर Nginx स्थापित किया और मैंने देखा कि डिफ़ॉल्ट पथ /usr/share/nginx/html/फ़ोल्डर है। क्या उस रास्ते को बदलने का कोई कारण है (सुरक्षा या अन्य कारणों से)? क्या डिफ़ॉल्ट फ़ोल्डर में इसे छोड़ना ठीक है अगर मैं एकमात्र उपयोगकर्ता बनने जा रहा हूं और अगर मैं केवल इसमें 1 वेबसाइट की मेजबानी करने जा रहा हूं?
नील

मेरे आखिरी सवाल का कभी भी बुरा मत मानना। मैंने इसके लिए अलग से फोल्डर बनाना शुरू किया क्योंकि मुझे लगा कि इसका बेहतर तरीका यही है कि मैं भविष्य में इस सेट-अप में अलग-अलग vhosts जोड़ना चाहता हूं। इस तरह से यह आसान है। चीयर्स :)
नील

11

Nginx के लिए डिफ़ॉल्ट वेब फ़ोल्डर इस बात पर निर्भर करता है कि आपने इसे कैसे स्थापित किया है, लेकिन आम तौर पर यह इन स्थानों में है:

/usr/local/nginx/html
/usr/nginx/html

10

उबंटू और डॉकटर छवियों के लिए:

 /usr/share/nginx/html/

बस जिज्ञासु, कहो मुझे नहीं पता था कि, मुझे कैसे पता चलेगा कि सही स्थान क्या है? इस बारे में कई अलग-अलग उत्तर हैं
रॉय नमिर

जहाँ तक मुझे याद है मैंने "नंगेक्स" (कुछ-कुछ / / -नाम नेग्नेक्स की तरह) खोजा और इस निर्देशिका के अंदर पाया (या इसके उपनिर्देशिका में) दस्तावेज़ जो मेरे ब्राउज़र में दिखाई दिया।
डिमिडक

9

कमांड चलाएं nginx -V और देखें --prefix। अपने डिफ़ॉल्ट रास्तों का पता लगाने के लिए उस प्रविष्टि का उपयोग करें।


9

कॉन्फ़िगरेशन को डंप करें:

$ nginx -T
...
server {
    ...
    location / {
        root   /usr/share/nginx/html;
        ...
    }
    ...
}

आपको जो प्राप्त हो सकता है वह अलग हो सकता है क्योंकि यह इस बात पर निर्भर करता है कि आपका nginxकॉन्फ़िगर / इंस्टॉल कैसे किया गया था।

संदर्भ:

अद्यतन: यदि / जब -Tविकल्प को जोड़ा गया था तो इस मुद्दे पर कुछ भ्रम है nginx। इसे 2015 जून 16 को vl-homutov द्वारा मैन पेज में प्रलेखित किया गया था , जो v1.9.2 रिलीज का हिस्सा बन गया । यह भी जारी नोटों में उल्लेख किया गया है-Tविकल्प हर में मौजूद रहा है nginxके बाद से जारी, एक Ubuntu 16.04.1 LTS पर उपलब्ध जिनमें शामिल हैं:

root@23cc8e58640e:/# nginx -h    
nginx version: nginx/1.10.0 (Ubuntu)
Usage: nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives]

Options:
  -?,-h         : this help
  -v            : show version and exit
  -V            : show version and configure options then exit
  -t            : test configuration and exit
  -T            : test configuration, dump it and exit
  -q            : suppress non-error messages during configuration testing
  -s signal     : send signal to a master process: stop, quit, reopen, reload
  -p prefix     : set prefix path (default: /usr/share/nginx/)
  -c filename   : set configuration file (default: /etc/nginx/nginx.conf)
  -g directives : set global directives out of configuration file

मुझे नहीं लगता कि यह ध्वज मौजूद है, आपको उत्तर को अद्यतन करने की आवश्यकता हो सकती है
lfender6445

@ ifender6445, मैं आपकी टिप्पणी से पूरी तरह भ्रमित हूं। मेरे पास स्रोत में लाइनों के दो संदर्भ हैं, प्रत्येक -Tविकल्प दिखा रहा है। क्या -Tविकल्प आपके विशेष इंस्टॉलेशन से गायब है? क्या आप अपने दावे को प्रमाणित करने के लिए कुछ भी दिखा सकते हैं?
रगड़ता है

हाँ यह है, nginx का एक अलग संस्करण हो सकता है? gist.github.com/lfender6445/ed8c5e26db64eba595ae4aaf4d15ee0d
lfender6445

समझा। ऐसा लगता है कि मैं nginx के पुराने संस्करण का उपयोग कर रहा हूं, माफी!
lfender6445

9

सुनिश्चित करने के लिए nginx config फ़ाइल देखें। आपके मशीन पर जो भी कॉन्फ़िगर किया गया है, उसके लिए यह कमांड greps:

cat /etc/nginx/sites-enabled/default |grep "root"

मेरी मशीन पर यह था: `जड़ / usr / शेयर / nginx / www;


8

मैक पर काढ़ा के साथ nginx स्थापित करें:

/usr/local/etc/nginx/nginx.conf

location / { 
    root   html;  # **means /usr/local/Cellar/nginx/1.8.0/html and it soft linked to /usr/local/var/www**
    index  index.html;
}  

8

CentOS, Ubuntu और Fedora के लिए, डिफ़ॉल्ट निर्देशिका है /usr/share/nginx/html


मुझे नग्नेक्स रूट चाहिए var/www/html
धड़क मितेश



5

यदि आप Ubuntu 14.04 पर हैं, तो आप निम्नलिखित पथ पर nginx www निर्देशिका पा सकते हैं:

yusuf@yusuf-he:/usr/share/nginx/html$ pwd
/usr/share/nginx/html
yusuf@yusuf-he:/usr/share/nginx/html$

धन्यवाद, संक्षिप्त संक्षिप्त और सटीक। कभी-कभी सबसे सरल स्पष्टीकरण सबसे अच्छा होता है।
WhyAyala

मुझे नग्नेक्स रूट चाहिए var/www/html
धड़क मितेश

5

आप इसके लिए खोज कर सकते हैं, कोई फर्क नहीं पड़ता कि उन्होंने इसे कहां स्थानांतरित किया (सिस्टम एडमिन ने स्थानांतरित किया या nginx का नया संस्करण)

/ -नाम nginx पाते हैं


4

यदि आपको nginx सार्वजनिक रूट फ़ोल्डर का पता लगाने की आवश्यकता है जिसे संकलन समय पर परिभाषित किया गया था तो आप अपनी access.log फ़ाइल की जांच कर सकते हैं।

  1. Nginx.conf खोलें
  2. Log_format निर्देश खोजें
  3. Log_format का मान एक टेम्पलेट स्ट्रिंग है, जिसका उपयोग access.log फ़ाइल में जानकारी लिखने के लिए किया जाता है । आप फ़ाइल में डिफ़ॉल्ट www रूट स्थान लॉग करने के लिए इस टेम्पलेट स्ट्रिंग में $ document_root चर जोड़ सकते हैं ।

यहाँ संशोधित log_format निर्देश के साथ nginx.conf के http अनुभाग से एक उदाहरण दिया गया है, स्ट्रिंग की शुरुआत में $ document_root जोड़ा गया है:

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

                  ## ADD $document_root HERE ##
        log_format  main  '$document_root $remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';

        access_log  /var/log/nginx/access.log  main;

        etc. .......
  1. फिर सभी कॉन्फ़िगरेशन फ़ाइलों का बैकअप लें। conf.d निर्देशिका में .conf और निम्न पंक्तियों के साथ कॉन्फ़िगरेशन फ़ाइल, test.conf बनाएँ :

    server{
        listen 80;
        server_name localhost;
    }
    
    1. निम्नलिखित पंक्ति को / etc / होस्ट फ़ाइल में जोड़ें: 127.0.0.1 localhost

    2. पुनः लोड करें nginx कॉन्फ़िगरेशन: nginx -s reload

    3. Http: // localhost पर GET अनुरोध भेजें :curl http://localhost

    4. Access.log के अंतिम स्ट्रिंग की जाँच करें :tail -n 1 /var/log/nginx/access.log

इस कमांड का नमूना आउटपुट यहां दिया गया है, जहां / etc / nginx / html संकलन समय पर परिभाषित डिफ़ॉल्ट दस्तावेज़ रूट है:

    /etc/nginx/html 127.0.0.1 - - [15/Mar/2017:17:12:25 +0200] "GET / HTTP/1.1" 404 169 "-" "curl/7.35.0" "-"

ऐसा लगता है कि यह काम करता है, लेकिन मुझे हल नहीं किया गया है, * .knexusgroup.com के लिए एक रिकॉर्ड 54.235.222.119, w3.knexusgroup.com पर है, लेकिन इसने किसी भी डोमेन के लिए लॉग इन नहीं किया है। कुछ भी <.kxxusgroup.com। यह काम करता है जहां रूट डायर की उचित परिभाषा है, मैं यह पता लगाने में सक्षम नहीं हूं कि क्या मुद्दा है, मैं किसी भी उप डोमेन के लिए रूट क्यों नहीं ढूंढ सकता हूं जो किसी भी नैगिनैक्स कॉन्फ़िगरेशन से मेल नहीं खाता है।
रामरतन गुप्त

4

आप फ़ाइल कॉन्फिग निगंक्स एक्सेस कर सकते हैं, आप रूट / पाथ देख सकते हैं। के इस डिफ़ॉल्ट में nginx अपाचे पर/var/www/html


/var/www/htmlअपाचे के लिए डिफ़ॉल्ट वेब रूट है, नगनेक्स नहीं।
एथन होहेंस

4

* डिफ़ॉल्ट पेज वेब को var / www / html में आवंटित किया गया है * डिफ़ॉल्ट कॉन्फ़िगरेशन सर्वर आदि / nginx / साइट्स / उपलब्ध / ngin.pf

server {

    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;

    index index.html index.php;

    server_name _;

    location /data/ {
        autoindex on;
    }

    location /Maxtor {
        root /media/odroid/;
        autoindex on;

    }

        # This option is important for using PHP.
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
    }
}

* डिफ़ॉल्ट विन्यास सर्वर आदि / nginx / nginx.conf

सामग्री..

user www-data;
worker_processes 8;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

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_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;
#   }
#}

डिफ़ॉल्ट पहुँच लॉग्स के साथ आईपी क्लाइंट var / log / nginx / ...


3

बस ध्यान दें कि nginx सर्वर के लिए डिफ़ॉल्ट इंडेक्स पेज रूट रूट को भी प्रदर्शित करेगा। अमेज़न लिनक्स एएमआई पर nginx (1.4.3) से, आपको निम्नलिखित मिलते हैं:

यह डिफ़ॉल्ट index.html पृष्ठ है जो अमेज़न लिनक्स AMI पर nginx के साथ वितरित किया गया है। यह / usr / share / nginx / html में स्थित है।

अब आपको अपनी सामग्री को अपनी पसंद के स्थान पर रखना चाहिए और nginx कॉन्फ़िगरेशन फ़ाइल /etc/nginx/nginx.conf में रूट कॉन्फ़िगरेशन निर्देश को संपादित करना चाहिए।


3

उबंटू पर मेरा नगीने "नगीनक्स वर्जन: नगनेक्स / 1.9.12 (उबंटू)" है और रूट रास्ता / var / www / html / है

उबंटू जानकारी है: कोई एलएसबी मॉड्यूल उपलब्ध नहीं हैं। डिस्ट्रीब्यूटर आईडी: उबंटू विवरण: उबंटू 16.04 एलटीएस रिलीज़: 16.04 कोडनेम: xenial

दरअसल, अगर आप सिर्फ उबंटू पर nginx स्थापित करते हैं, तो आप "/ etc / nginx / sites-available" पर जा सकते हैं और डिफ़ॉल्ट फ़ाइल की जांच कर सकते हैं, "रूट / वेब / रूट / पाथ / हो जाता है / यहाँ" जैसे कॉन्फ़िगरेशन है। और वही तुम खोज रहे हो।


3

आप इसे / var / www / में पा सकते हैं जो कि nginx और apache के लिए डिफ़ॉल्ट डायरेक्टरी है लेकिन आप इसे बदल सकते हैं। चरण 1 निम्न फ़ोल्डर / etc / nginx / साइट्स-उपलब्ध पर जाएँ

चरण 2 में डिफ़ॉल्ट फ़ाइल को संपादित करें कि आप एक सर्वर ब्लॉक पा सकते हैं इसके तहत रूट नाम की लाइन होगी जो कि स्थान को परिभाषित करती है।


3

ubuntu 19.04 में, हमने इसे पाया

/ Usr / share / nginx / HTML


2

Nginx / 1.4.6 (Ubuntu) के लिए

/etc/nginx$ cat /etc/nginx/sites-available/default | grep -i root
- root /usr/share/nginx/html;


1

जब nginx संकलित किया जाता है तो डिफ़ॉल्ट स्क्रिप्ट के prefixविकल्प से संबंधित होता configureहै; यहाँ डेबियन से कुछ अजीब नमूना है:

% nginx -V | & tr ' ' "\n" | fgrep -e path -e prefix
--prefix=/etc/nginx
--conf-path=/etc/nginx/nginx.conf
--error-log-path=/var/log/nginx/error.log
--http-client-body-temp-path=/var/lib/nginx/body
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi
--http-log-path=/var/log/nginx/access.log
--http-proxy-temp-path=/var/lib/nginx/proxy
--http-scgi-temp-path=/var/lib/nginx/scgi
--http-uwsgi-temp-path=/var/lib/nginx/uwsgi
--lock-path=/var/lock/nginx.lock
--pid-path=/var/run/nginx.pid

बाद में, का डिफ़ॉल्ट मान rootहै करने के लिए सेट htmlनिर्देशिका (के अनुसार के प्रलेखन rootके निर्देश है, जो भीतर होने वाला) prefix, के रूप में देख कर सत्यापित किया जा सकता $document_rootएक सरल विन्यास फाइल से चर:

# printf 'server{listen 4867;return 200 $document_root\\n;}\n' \
    >/etc/nginx/conf.d/so.10674867.conf

# nginx -s reload && curl localhost:4867
/etc/nginx/html

हालाँकि, डेबियन जैसे दुष्ट वितरण इसे थोड़ा संशोधित करते हैं, जिससे आपको अतिरिक्त मनोरंजन मिलता रहे:

% fgrep -e root -e include /etc/nginx/nginx.conf
    include /etc/nginx/mime.types;
    #include /etc/nginx/naxsi_core.rules;
    #passenger_root /usr;
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;

% fgrep -e root -e include \
    /etc/nginx/conf.d/*.conf /etc/nginx/sites-enabled/*
/etc/nginx/conf.d/so.10674867.conf:server{listen 4867;return 200 $document_root\n;}
/etc/nginx/sites-enabled/default:   root /usr/share/nginx/www;
/etc/nginx/sites-enabled/default:       # include /etc/nginx/naxsi.rules
/etc/nginx/sites-enabled/default:   #   root /usr/share/nginx/www;
/etc/nginx/sites-enabled/default:   #   include fastcgi_params;
/etc/nginx/sites-enabled/default:   # deny access to .htaccess files, if Apache's document root
/etc/nginx/sites-enabled/default:#  root html;
/etc/nginx/sites-enabled/default:#  root html;

इसलिए, डेबियन के इस उदाहरण पर, आप देख सकते हैं कि रूट अंत में सेट है /usr/share/nginx/www

लेकिन जैसा कि आपने नमूना सर्वर कॉन्फ़िगरेशन के साथ देखा था जो $document_roothttp पर इसके मूल्य की सेवा करेगा , nginx को कॉन्फ़िगर करना इतना सरल है कि आप rootअपनी सटीक कॉन्फ़िगरेशन को एक पंक्ति या दो के मामले में लिख सकते हैं, जो आपकी सटीक आवश्यकताओं को पूरा करने के लिए आवश्यक निर्दिष्ट करता है ।


root html;इसका क्या मतलब है , मेरा मतलब है कि वास्तविक रास्ता क्या है?
रामरतन गुप्त

1
@ रामरतनगुप्त, क्या आपने जवाब नहीं पढ़ा? बहुत पहले लाइनों की रूपरेखा है कि पथ संकलन-समय उपसर्ग सेटिंग के सापेक्ष है।
cnst

1

मैं भी डिजिटल महासागर पर इस मुद्दे को nginx के साथ एक WordPress वेबसाइट चला रहा था।

मेरा समाधान निम्न कार्य करना था:

  1. /etc/nginx/nginx.confनिम्नलिखित के साथ फाइल को संशोधित करें :
server {
root /var/www/html;
}

मुझे तब करना पड़ा sudo service nginx restart

nginx -Vकमांड आपको यह भी दिखाती है कि आपकी nginx config फाइल कहां पर स्थित है (मेरा इशारा किया गया था /etc/nginx/nginx.conf)


0

अल्पाइन लिनक्स में कोई भी डिफ़ॉल्ट स्थान नहीं है। फ़ाइल /etc/nginx/conf.d/default.confकहती है:

# Everything is a 404
location / {
    return 404;
}

# You may need this to prevent return 404 recursion.
location = /404.html {
    internal;
}

root /var/www/localhost/htdocsअपनी इच्छित निर्देशिका को इंगित करने के लिए उन्हें एक पंक्ति के साथ बदलें । फिर sudo service nginx restartपुनः आरंभ करने के लिए।


1
सच नहीं। बस नवीनतम nginx:alpineछवि की कोशिश की और यह /usr/share/nginx/htmlबॉक्स से सामग्री की सेवा करता है ।
मैजिकोड

1
यह डाग्नेयर इमेज की तरह लगता है, जो कि नगनेक्स प्रोजेक्ट द्वारा बनाई गई है, जो कि एल्पाइन लिनक्स को अंतर्निहित ओएस के रूप में उपयोग करता है। जब आप अपने मुख्य ओएस के रूप में अल्पाइन लिनक्स स्थापित करते हैं और apk add nginxअल्पाइन के स्वयं के पैकेज प्रबंधक से मैन्युअल रूप से nginx स्थापित करने के लिए करते हैं , तो आपको मेरे उत्तर में वर्णित स्थिति मिलती है (या ऐसा ही तब होता है जब मैंने इसे कुछ महीने पहले भी कोशिश की थी)।
लस्सी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.