একবার একটি ভাল সময় পরে, আমি তিনটি একটি ভাল কনফিগ ছিল NodeJs , socket.io এপিআই একই চলমান উবুন্টু 16.4 LTS ভিপিএস সার্ভারের সাথে PM2 প্রক্রিয়া পরিচালনার এবং জন্য nginx তিনটি ভিন্ন সাবডোমেন থেকে রিভার্স প্রক্সি জন্য।
আমার সফলভাবে ইনস্টল করা যাক এনক্রিপ্টের একটি এসএসএল শংসাপত্র এবং সমস্ত সাবডোমেনগুলি একই ডোমেনের (আসুন উদাহরণস্বরূপ বলা যাক) এবং এটি https এ পুনঃনির্দেশিত হওয়া উচিত ।
আমি একবার ননডিজ অ্যাপ্লিকেশন (পিএইচপি / লারাভেল) এর জন্য চতুর্থ সাবডোমেন যুক্ত করার চেষ্টা করার পরে, বিপরীত প্রক্সিটি আর পাস হয় না এবং দুর্ভাগ্যক্রমে আমার পুরনো এনগিনেক্স কনফিগারেশনের ব্যাকআপ নেই।
এখন, আমি তিনটি পুরাতন NodeJs অ্যাপ্লিকেশনগুলির সাথে আমার VPS's সাদৃশ্য ফিরে পেতে চেষ্টা করছি, কিন্তু এটা আমার দেয় 504 গেটওয়ে টাইম-আউট থেকে nginx ।
এখানে আমার কনফিগারেশনটি আমি মনে করি যা একই পুরানো:
এই কনফিগারটি ক্রোমে দুর্দান্ত কাজ করে তবে আমি মোবাইল এবং ডেস্কটপ অ্যাপ্লিকেশনগুলি থেকে আমার এপিআইগুলিতে পৌঁছানোর চেষ্টা করছি।
# HTTP — redirect all traffic to HTTPS
server {
listen 80;
listen [::]:80 default_server ipv6only=on;
return 301 https://$host$request_uri;
}
# App1 from port 3000 to sub1.exemple.com
server {
# Enable HTTP/2
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name sub1.exemple.com;
# Use the Let’s Encrypt certificates
ssl_certificate
/etc/letsencrypt/live/sub1.exemple.com/fullchain.pem;
ssl_certificate_key
/etc/letsencrypt/live/sub1.exemple.com/privkey.pem;
# Include the SSL configuration from cipherli.st
include snippets/ssl-params.conf;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-NginX-Proxy true;
proxy_ssl_session_reuse off;
proxy_set_header Host $http_host;
proxy_cache_bypass $http_upgrade;
proxy_pass http://localhost:3000/;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
# App2 from port 4000 to sub2.exemple.com
server {
# Enable HTTP/2
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name sub2.exemple.com;
# Use the Let’s Encrypt certificates
ssl_certificate
/etc/letsencrypt/live/sub2.exemple.com/fullchain.pem;
ssl_certificate_key
/etc/letsencrypt/live/sub2.exemple.com/privkey.pem;
# Include the SSL configuration from cipherli.st
include snippets/ssl-params.conf;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-NginX-Proxy true;
proxy_ssl_session_reuse off;
proxy_set_header Host $http_host;
proxy_cache_bypass $http_upgrade;
proxy_pass http://localhost:4000/;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
# App2 from port 5000 to sub3.exemple.com
server {
# Enable HTTP/2
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name sub3.exemple.com;
# Use the Let’s Encrypt certificates
ssl_certificate
/etc/letsencrypt/live/sub3.exemple.com/fullchain.pem;
ssl_certificate_key
/etc/letsencrypt/live/sub3.exemple.com/privkey.pem;
# Include the SSL configuration from cipherli.st
include snippets/ssl-params.conf;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-NginX-Proxy true;
proxy_ssl_session_reuse off;
proxy_set_header Host $http_host;
proxy_cache_bypass $http_upgrade;
proxy_pass http://localhost:5000/;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
আরও তথ্যের জন্য আপডেট।
এনগিনেক্স, নোডজেস এবং পিএম 2 কোনও ত্রুটি দেয় না। লগগুলি পরিষ্কার। অনুরোধগুলি পরিদর্শন করার সময় আমি যা পাই তা এখানে।
সকেটের অনুরোধ করলে এটি সফল হয়: (উভয় wss://
এবং https://
)
অন্যরা অনুরোধ করলে এটি ব্যর্থ হয়:
আমি আরও উল্লেখ করতে চাই যে এসএসএল প্রতিটি উপের জন্য ভাল ইনস্টলড রয়েছে এবং অ্যাপ্লিকেশনগুলি স্থিতিশীল এবং কোনও সমস্যা ছাড়াই স্থানীয় সার্ভারে চলছে।