ฉันมีเซิร์ฟเวอร์ 2 เครื่อง เครื่องหนึ่งอยู่บนมหาสมุทรดิจิทัล และอีกเครื่องอยู่ที่อื่น ฉันมีโครงการหนึ่งและทำงานได้ดีกับแอปทั้งหมดบนเซิร์ฟเวอร์นั้น แต่ฉันต้องการสร้างหยดและย้ายไปยังมหาสมุทรดิจิทัล ดังนั้นฉันจึงคัดลอกไฟล์ทั้งหมดไปยังเซิร์ฟเวอร์ใหม่ (มหาสมุทรดิจิทัล) ผ่านทาง sudo scp
สั่งการ. บริการทั้งหมดทำงานได้ดียกเว้น Nginx ส่งคืนรหัสทางออก 1 ตามภาพด้านล่าง รหัสทั้งหมดเหมือนกันดังนั้นฉันจึงสับสนมากว่าทำไมมันถึงไม่ทำงานเหมือนกัน
บริการ
ฉันขอทราบได้ไหมว่าฉันขาดอะไรไป
มันเป็นไฟล์ nginx.conf ของฉัน:
worker_processes 4;
เหตุการณ์ {
worker_connections 4096;
}
http {
เซิร์ฟเวอร์ {
ฟัง 80 default_server;
ชื่อเซิร์ฟเวอร์ "";
กลับ 444;
}
เซิร์ฟเวอร์ {
server_name game-dev.myappapp.com;
ที่ตั้ง / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
proxy_set_header โฮสต์ $http_host;
proxy_set_header X-NginX-Proxy จริง;
proxy_http_version 1.1;
proxy_set_header อัพเกรด $http_upgrade;
proxy_set_header การเชื่อมต่อ "อัพเกรด";
proxy_pass http://game_nodes;
ปิด proxy_redirect;
}
}
เซิร์ฟเวอร์ {
ถ้า ($host = game-dev.myappapp.com) {
ส่งคืน 301 https://$host$request_uri;
}
ฟัง 80;
ฟัง [::]:80;
server_name game-dev.myappapp.com;
กลับ 404;
}
ต้นน้ำ game_nodes {
# เปิดใช้งานเซสชันปักหมุด
#ip_hash;
เซิร์ฟเวอร์เกมอัลฟ่า:3000;
Keepalive 8;
}
เซิร์ฟเวอร์ {
server_name api-dev.myappapp.com;
ที่ตั้ง / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
proxy_set_header โฮสต์ $http_host;
proxy_set_header X-NginX-Proxy จริง;
proxy_pass http://main_nodes;
ปิด proxy_redirect;
}
}
เซิร์ฟเวอร์ {
ถ้า ($host = api-dev.myappapp.com) {
ส่งคืน 301 https://$host$request_uri;
}
ฟัง 80;
ฟัง [::]:80;
server_name api-dev.myappapp.com;
กลับ 404;
}
ต้นน้ำ main_nodes {
เซิร์ฟเวอร์หลัก-alpha:8000;
เซิร์ฟเวอร์หลักเบต้า: 8000;
Keepalive 8;
}
}
มันคือ Dockerfile ของฉัน:
จาก nginx
คัดลอก nginx.conf /etc/nginx/nginx.conf
ดังที่คุณเห็นจากภาพหน้าจอด้านล่าง (เซิร์ฟเวอร์ด้านซ้ายคือ droplet ของฉัน ส่วนด้านขวาคือเซิร์ฟเวอร์อื่นของฉัน) droplet ของฉันไม่ฟังพอร์ต 80 โดยปกติแล้วควรฟังพอร์ต 80 ของเซิร์ฟเวอร์อื่น
ภาพหน้าจอ
นี่คือบันทึก Nginx ของฉัน
root@knowin-project-dev:/home/cihat/app# นักเทียบท่าบันทึก nginx
/docker-entrypoint.sh: /docker-entrypoint.d/ ไม่ว่างเปล่า จะพยายามดำเนินการกำหนดค่า
/docker-entrypoint.sh: ค้นหาเชลล์สคริปต์ใน /docker-entrypoint.d/
/docker-entrypoint.sh: เปิดตัว /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: ข้อมูล: รับการตรวจสอบของ /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: ข้อมูล: เปิดใช้งานการฟังบน IPv6 ใน /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: เปิดตัว /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: เปิดตัว /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: การกำหนดค่าเสร็จสมบูรณ์; พร้อมสำหรับการเริ่มต้น
13/06/2021 20:22:46 [ฉุกเฉิน] 1#1: คำสั่งที่ไม่รู้จัก "เปิดใช้งาน" ใน /etc/nginx/nginx.conf:45
nginx: [ฉุกเฉิน] คำสั่งที่ไม่รู้จัก "เปิดใช้งาน" ใน /etc/nginx/nginx.conf:45
หมายเหตุ: สถานะของ ufw ไม่ได้ใช้งาน ดังนั้นจึงมีพอร์ตทั้งหมด