अलग-अलग पोर्ट (80 से अधिक) के माध्यम से nginx कैसे शुरू करें


128

नमस्ते, मैं एक नौसिखिया पर नौसिखिया हूँ, मैंने इसे अपने सर्वर पर स्थापित करने की कोशिश की (Ubuntu 4 चल रहा है), जिसमें पहले से ही अपाचे चल रहा है।

तो मैं apt-get installइसे करने के बाद , मैं nginx शुरू करने की कोशिश की। तब मुझे इस तरह का संदेश मिलता है:

Starting nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
configuration file /etc/nginx/nginx.conf test is successful
[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)

यह समझ में आता है क्योंकि अपाचे पोर्ट 80 का उपयोग कर रहा है।

फिर मैंने संशोधित करने की कोशिश की nginx.conf, मैं कुछ लेखों का संदर्भ देता हूं, इसलिए मैंने इसे इस तरह बदल दिया:

   server {

        listen       8080;

        location / {
         proxy_pass  http://xx.xx.xx.xx:9500;
         proxy_set_header   Host             $host:8080;
         proxy_set_header   X-Real-IP        $remote_addr;
         proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
         proxy_set_header Via    "nginx";
        }

इसे सहेजने और फिर से nginx शुरू करने का प्रयास करने के बाद, मुझे अभी भी पहले की तरह ही त्रुटि मिलती है। मैं वास्तव में इस बारे में एक संबंधित पोस्ट नहीं पा सकता हूं, क्या कोई भी अच्छा व्यक्ति कुछ प्रकाश डाल सकता है?

अग्रिम में धन्यवाद :)

================================================== =======================

मुझे यहाँ सभी सामग्री पोस्ट करनी चाहिए:

user www-data;
worker_processes  1;

error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
    # multi_accept on;
}

http {
    include       /etc/nginx/mime.types;

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

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;
    tcp_nodelay        on;

    gzip  on;
    gzip_disable "MSIE [1-6]\.(?!.*SV1)";

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

   server {

        listen       81;

        location / {
         proxy_pass  http://94.143.9.34:9500;
         proxy_set_header   Host             $host:81;
         proxy_set_header   X-Real-IP        $remote_addr;
         proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
         proxy_set_header Via    "nginx";
        }


    }
}

 mail {
      See sample authentication script at:
      http://wiki.nginx.org/NginxImapAuthenticateWithApachePhpScript

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

मूल रूप से, मैंने सर्वर भाग को जोड़ने के अलावा कुछ भी नहीं बदला।


क्या आपके पास भी यही संदेश है। हो सकता है कि बंदरगाह दूसरे में बदल गया हो? क्या आपने सुडो के माध्यम से नगनेक्स चलाने की कोशिश की?
dmr



जवाबों:


182

आपको जाना है /etc/nginx/sites-enabled/और यदि यह डिफ़ॉल्ट कॉन्फ़िगरेशन है, तो नाम से एक फ़ाइल होनी चाहिए default:।

अपने इच्छित पोर्ट को परिभाषित करके उस फ़ाइल को संपादित करें; नीचे दिए गए स्निपेट में, हम पोर्ट 81 पर नेगनेक्स का उदाहरण दे रहे हैं।

server {
    listen 81;
}

सर्वर शुरू करने के लिए, नीचे कमांड लाइन चलाएं;

sudo service nginx start

अब आप पोर्ट 81 (स्थानीयहोस्ट, http: // localhost: 81 के लिए ) पर अपने आवेदन को एक्सेस कर सकते हैं ।


वैकल्पिक रूप से, यदि आपके पास सेवा स्थापित नहीं है (OS X, आमतौर पर) तो आप चला सकते हैं: sudo nginx -s reload
जॉन पॉल बारबागलो

यदि nginx पहले से ही चल रहा है तो आपको पुनरारंभ करने की आवश्यकता हो सकती हैsudo service nginx restart
चित्रण

3
81 पोर्ट के साथ प्रयास करने पर मुझे क्रोम में त्रुटि हो रही है: "यह वेबपेज ERR_CONNECTION_TIMED_OUT" उपलब्ध नहीं है, लेकिन 80 कामों के साथ।
डेरियस। वी।

मैंने ऐसा किया था, लेकिन जब मैं दौड़ता हूं netstat, तब भी पोर्ट 80 पर कुछ न कुछ सुनाई देता है। क्या आपके पास कोई विचार है?
मुस्तफा चेलिक

डिफॉल्ट चेक इन/etc/nginx/sites-available directory
अमित तेली

22

आपको अपाचे या नग्नेक्स के कॉन्फ़िगर पोर्ट को बदलने की आवश्यकता होगी। आपके द्वारा ऐसा करने के बाद आपको आपके द्वारा उपयोग की जाने वाली 'सेवा' कमांड का उपयोग करके पुन: कॉन्फ़िगर किए गए सर्वर को पुनरारंभ करना होगा।


अमरीका की एक मूल जनजाति

संपादित करें

sudo subl /etc/apache2/ports.conf 

और कुछ अलग करने के लिए निम्नलिखित लाइन पर 80 बदलें:

Listen 80

यदि आप केवल पोर्ट बदलते हैं या यहां अधिक पोर्ट जोड़ते हैं, तो आपको संभवतः VirtualHost स्टेटमेंट को भी बदलना होगा

sudo subl /etc/apache2/sites-enabled/000-default.conf

और कुछ अलग करने के लिए निम्नलिखित लाइन पर 80 बदलें:

<VirtualHost *:80>

इसके बाद पुनः आरंभ करें:

sudo service apache2 restart

nginx

संपादित करें

/etc/nginx/sites-enabled/default

और निम्न लाइन पर 80 को बदलें:

listen 80;

इसके बाद पुनः आरंभ करें:

sudo service nginx restart

20

इसे फॉलो करें: अपनी कॉन्फिग फाइल खोलें

vi /etc/nginx/conf.d/default.conf

पोर्ट नंबर बदलें जिस पर आप सुन रहे हैं;

listen       81;
server_name  localhost;

Iptables में एक नियम जोड़ें

 vi /etc/sysconfig/iptables 
-A INPUT -m state --state NEW -m tcp -p tcp --dport 81 -j ACCEPT

IPtables को पुनरारंभ करें

 service iptables restart;

Nginx सर्वर को पुनरारंभ करें

service nginx restart

पोर्ट 81 पर पहुंच yr nginx सर्वर फ़ाइलों


1
इस पद्धति का उपयोग करके मेरा मुद्दा हल किया गया था जो आपके लगभग समान था।
सिनशिव जूल

FYI करें: खिड़कियों के नीचे nginx के लिए सही फ़ाइल नाम conf \ nginx.conf होगा
Johnny Bigoode

इससे कोई फर्क नहीं पड़ता कि कॉन्फिडेंस फाइल का नाम क्या है क्योंकि पूरी तरह से डीआईआर खट्टा है।
सिनशिवा

3

यदि आप विंडोज़ पर हैं, तो पोर्ट से संबंधित सर्वर सेटिंग्स नीचे फ़ाइल nginx.conf में मौजूद हैं <nginx इंस्टॉलेशन पाथ> / conf फ़ोल्डर।

server {
    listen       80;
    server_name  localhost;
....

पोर्ट नंबर बदलें और आवृत्ति को पुनरारंभ करें।


1

यदि आप डॉकर का उपयोग करते समय इस समस्या का सामना कर रहे हैं, तो सही पोर्ट नंबरों को मैप करना सुनिश्चित करें। यदि आप docker (या docker-compose.yml) चलाते समय पोर्ट 81:80 पर मैप करते हैं, तो आपके nginx को पोर्ट 80 नहीं 81 पर सुनना चाहिए , क्योंकि docker पहले से ही मैपिंग करता है।

मैंने खुद इस मुद्दे पर काफी समय बिताया है, इसलिए आशा है कि यह भविष्य के गोगलर्स के लिए कुछ मदद कर सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.