ค้นหาเว็บไซต์

วิธีการเปลี่ยนพอร์ต Nginx ใน Linux


Nginx เป็นเซิร์ฟเวอร์โอเพ่นซอร์สที่เสถียรซึ่งขับเคลื่อนเว็บไซต์ที่มีปริมาณการเข้าชมสูงสุดในอินเทอร์เน็ตในปัจจุบัน ในบรรดาบริการบนเว็บต่างๆ เว็บเซิร์ฟเวอร์ Nginx สามารถปรับใช้เป็น load-balancer, web Reverse proxy หรือเป็นพร็อกซีเซิร์ฟเวอร์ POP และ IMAP ได้สำเร็จ

ตามค่าเริ่มต้น เซิร์ฟเวอร์ Nginx HTTP จะคอยรับการเชื่อมต่อขาเข้าและเชื่อมโยงกับพอร์ต 80 ซึ่งแสดงถึงพอร์ตเว็บมาตรฐาน อย่างไรก็ตาม การกำหนดค่า TLS ซึ่งไม่ได้เปิดใช้งานตามค่าเริ่มต้นใน Nginx จะรับฟังการเชื่อมต่อที่ปลอดภัยบนพอร์ต 443

ในการที่จะทำให้เซิร์ฟเวอร์ Nginx HTTP ฟังการเชื่อมต่อเว็บขาเข้าบนพอร์ตที่ไม่ได้มาตรฐานอื่นๆ เราจำเป็นต้องแก้ไขไฟล์การกำหนดค่าหลักและเปลี่ยนแปลงหรือเพิ่มคำสั่งใหม่เพื่อสะท้อนถึงข้อเท็จจริงนี้

ในระบบที่ใช้ Ubuntu และ Debian เราจำเป็นต้องแก้ไขไฟล์ /etc/nginx/sites-enabled/default และใน RHEL การกระจายตาม และ CentOS แก้ไขไฟล์ /etc/nginx/nginx.conf

ขั้นแรก ให้เปิดไฟล์การกำหนดค่า Nginx ด้วยโปรแกรมแก้ไขข้อความ และเปลี่ยนหมายเลขพอร์ตตามที่แสดงในข้อความที่ตัดตอนมาด้านล่าง

vi /etc/nginx/sites-enabled/default  [On Debian/Ubuntu]
vi /etc/nginx/nginx.conf             [On CentOS/RHEL]

ในข้อความที่ตัดตอนมานี้ เราจะกำหนดค่าเซิร์ฟเวอร์ Nginx HTTP ให้รับฟังการเชื่อมต่อขาเข้าบนพอร์ต 3200 ค้นหาบรรทัดที่ขึ้นต้นด้วยคำสั่ง listen ในคำสั่งเซิร์ฟเวอร์ และเปลี่ยนพอร์ตจาก 80 เป็น 3200 ดังที่แสดงในภาพด้านล่าง

listen 3200 default_server;

หลังจากแก้ไขคำสั่งพอร์ต Nginx คุณจะต้องรีสตาร์ทเว็บเซิร์ฟเวอร์เพื่อผูกกับพอร์ตใหม่บนการกระจาย Linux ที่ใช้ Debian ตรวจสอบตารางซ็อกเก็ตเครือข่ายท้องถิ่นด้วย netstat หรือ คำสั่ง ss พอร์ต 3200 ควรแสดงในตารางเครือข่ายท้องถิ่นของเซิร์ฟเวอร์ของคุณ

systemctl restart nginx
netstat -tlpn| grep nginx
ss -tlpn| grep nginx

ในการกระจาย Linux ที่ใช้ CentOS หรือ RHEL คุณต้องติดตั้งแพ็คเกจ policycoreutils และเพิ่มกฎด้านล่างที่กำหนดโดย SELinux สำหรับ Nginx เพื่อผูกกับพอร์ตใหม่ .

yum install policycoreutils
semanage port -a -t http_port_t -p tcp 3200
semanage port -m -t http_port_t -p tcp 3200

ในที่สุดก็รีสตาร์ทเซิร์ฟเวอร์ Nginx HTTP เพื่อใช้การเปลี่ยนแปลง

systemctl restart nginx.service 

ตรวจสอบซ็อกเก็ตการฟังตารางเครือข่าย

netstat -tlpn| grep nginx
ss -tlpn| grep nginx

หากต้องการตรวจสอบว่าสามารถเข้าถึงเว็บเซิร์ฟเวอร์ได้จากคอมพิวเตอร์ในเครือข่ายของคุณหรือไม่ ให้เปิดเบราว์เซอร์แล้วไปที่ที่อยู่ IP ของเซิร์ฟเวอร์หรือชื่อโดเมนบนพอร์ต 3200 คุณควรเห็นหน้าเว็บเริ่มต้นของ Nginx ดังที่แสดงในภาพหน้าจอด้านล่าง

http://sever.ip:3200 

อย่างไรก็ตาม หากคุณไม่สามารถเรียกดูหน้าเว็บ Nginx ได้ ให้กลับไปที่คอนโซลของเซิร์ฟเวอร์และตรวจสอบกฎไฟร์วอลล์เพื่ออนุญาตการรับส่งข้อมูลขาเข้าบนพอร์ต 3200/tcp