समीपस्थ के लिए अपाचे का मान करने के लिए nginx कन्वर्ट कन्वर्ट

Dec 02 2020

मुझे इस नगनेक्स को अपाचे कॉन्फिडेंस में बदलने की जरूरत है। जैसा कि मैंने बदलने की कोशिश की है, लेकिन इसे पाने में असफल रहा।

upstream apiUpstream {

  # 1. Set your port here
  server 127.0.0.1:8080;
  keepalive 64;
}

server {
  listen 80;
  listen 443 ssl;

  # 2. Set your API domain name here
  server_name yourdomain.com;

  location / {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # RequestHeader set X-Forwarded-Port "443" proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $http_host; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_pass http://apiUpstream/;  
    proxy_redirect off;
    proxy_read_timeout 240s;
  }

  # 3. SSL certificate set below
  # Here is added a sample certificate format of letsencrypt
  # You are free to remove it and configure yours here
  ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
  include /etc/letsencrypt/options-ssl-nginx.conf;
  ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}

अपाचे करने के लिए।

  ProxyRequests On
  ProxyPass   http://apiUpstream/ timeout=240
  ProxyPassReverse http://apiUpstream.com

लेकिन इसका काम नहीं कर रहा, मुझे इसे काम करने में मदद करें।

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

मुझे यह त्रुटि मिल रही है

peerjs.min.js:52 WebSocket connection to 'wss://api.example.com/peer/peerjs?key=peerjs&id=6yqD1MoKzkK&token=kp8g8w6pj2l' failed: Error during WebSocket handshake: 'Connection' header is missing

और मैंने इस तरह डोमेन के लिए cpanel conf को बदलने की कोशिश की है।

<Proxy balancer://apiUpstream/>

 BalancerMember http:// 127.0.0.1:8080;
 keepalive 64;
 ProxySet lbmethod=byrequests
</Proxy>

ProxyRequests On
ProxyPass / balancer://apiUpstream/
ProxyPassReverse / balancer://apiUpstream/

इसे बचाने के बाद मैं WHM से अपाचे को पुनः आरंभ नहीं कर सकता। यह कहते हुए कि बैलेंसर मेंबर कैंट लोड नहीं हो सकता। मुझे नहीं पता कि इसे कैसे ठीक करना है।

स्क्रीनशॉट

और सटीक त्रुटि संदेश

Syntax error on line 2 of /etc/apache2/conf.d/userdata/ssl/2_4/node/api.example.com/proxy_pass.conf: Dec 07 12:03:54 
ip-xx-xx-xxx-xx.ip.secureserver.net restartsrv_httpd[32106]: BalancerMember can not have a balancer name when defined in a location Dec 07 12:03:54

जवाब

PawelHawro Dec 13 2020 at 07:08

सबसे पहले आपको लोड किए गए मॉड्यूल के साथ अपाचे की आवश्यकता है:

  • mod_proxy
  • mod_proxy_http
  • mod_proxy_wstunnel (httpd 2.4.5 और बाद में उपलब्ध) डॉक्स

Ubuntu में आप इसके साथ सक्षम कर सकते हैं:

a2enmod proxy
a2enmod proxy_http
a2enmod proxy_wstunnel

आप WebSocket से जुड़ने की कोशिश कर रहे हैं जिसे आपको अपने नोड ऐप के वेबसैट में लाने की आवश्यकता है।

कुछ इस तरह की कोशिश करो:

<VirtualHost *:443>
  ServerName example.com
      
  ProxyPreserveHost On
  RewriteEngine On
     
  # If header Upgrade: websocket found, proxy to ws
  RewriteCond %{HTTP:Upgrade} =websocket [NC]  
  RewriteRule /(.*)           ws://localhost:8080/$1 [P,L] # If header not found use http RewriteCond %{HTTP:Upgrade} !=websocket [NC] RewriteRule /(.*) http://localhost:8080/$1 [P,L]

  
  # SSL config
  ...
  
</VirtualHost>