ฉันเช็คเอาท์ หลายเว็บไซต์บน nginx, IP เดียว แต่ฉันมีสถานการณ์ที่แตกต่างกันเล็กน้อย
ฉันต้องการโฮสต์เว็บไซต์สามแห่ง (หนึ่งแห่งสำหรับเลานจ์และอีกสองแห่งเป็นเว็บแอป ASP.NET Core ซึ่งรับฟังพอร์ตต่างๆ (5002 ตามลำดับ 5003)) บนเซิร์ฟเวอร์เดียวกัน (ที่อยู่ IP เดียวกัน) แต่อยู่ในโดเมนย่อยที่แตกต่างกัน
ดังนั้น ฉันจึงซื้อโดเมนจาก namecheap และกำหนดค่าโดเมนสำหรับห้องรับรองตามภาพ:
ฉันติดตามจากคำตอบของ Thomas Ward ทีละขั้นตอน แต่ฉันไม่รู้สำหรับเว็บแอป. net core ซึ่งฟังพอร์ตต่างๆ ฉันสร้างบริการ บริการ kestrel สำหรับแอป .net core ใน /etc/systemd/system/myapp.service
[หน่วย]
คำอธิบาย=แอปของฉัน
[บริการ]
WorkingDirectory=/home/anuser
ExecStart=/usr/bin/dotnet /home/anuser/MyApp.Web.dll
เริ่มใหม่ = เสมอ
# เริ่มบริการใหม่หลังจาก 10 วินาทีหากบริการ dotnet ขัดข้อง:
รีสตาร์ทวินาที=10
KillSignal=SIGINT
SyslogIdentifier=ตัวแก้ไขข้อมูล
ผู้ใช้ = ผู้ใช้
สิ่งแวดล้อม=ASPNETCORE_ENVIRONMENT=การผลิต
สภาพแวดล้อม=DOTNET_PRINT_TELEMETRY_MESSAGE=เท็จ
[ติดตั้ง]
WantedBy=multi-user.target
ฉันเปิดใช้งานบริการด้านบนและเรียกใช้ ดีทุกอย่าง เว็บใช้งานได้
เมื่อพยายามเข้าถึง editor.xxx.xxx ระบบจะเปลี่ยนเส้นทางไปยังเว็บไซต์แรก (เลานจ์)
nginx conf สำหรับเลานจ์ (chat.xxxxx.conf):
เซิร์ฟเวอร์ {
server_name chat.xxxxx.xxxxx;
ตั้ง $upstream 127.0.0.1:9000;
ที่ตั้ง / {
การอนุญาต proxy_pass_header;
proxy_pass http://$อัพสตรีม;
proxy_set_header โฮสต์ $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
การเชื่อมต่อ proxy_set_header "";
ปิด proxy_buffering;
client_max_body_size 0;
proxy_read_timeout 36000s;
ปิด proxy_redirect;
...
}
และสำหรับเว็บแอป .net core (editor.xxxxx.conf)
เซิร์ฟเวอร์ {
server_name ตัวแก้ไข xxxxx.xxxx
ตั้ง $upstream 127.0.0.1:5002;
ที่ตั้ง / {
การอนุญาต proxy_pass_header;
proxy_pass http://$อัพสตรีม;
proxy_set_header โฮสต์ $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header การเชื่อมต่อ ââ;
ปิด proxy_buffering;
client_max_body_size 0;
proxy_read_timeout 36000s;
ปิด proxy_redirect;
}
ฟัง 80;
}
แน่นอนฉันใช้ ล
คำสั่งสร้าง symbolic link ไปยัง /sites-enabled
ฉันรีสตาร์ทด้วย nginx แต่ยังคงเปลี่ยนเส้นทางไปที่เลานจ์