nginx block user ที่เข้าเว็บด้วย ip ของ server หรือ domain อื่นๆ

19 Oct 2016

Share to:

สวัสดีครับ วันนี้ผมเจอกรณีที่คนเข้าเว็บมาด้วย Domain อื่นๆ ที่ไม่ใช่ของเรา แต่เป็นหน้าเว็บเราเฉยเลย ทําให้ Domain อื่นๆของใครก็ไม่รู้ สวมรอยเป็นเว็บเราได้อย่างเช่นกรณีนี้

Image

เป็นเว็บของผมเองครับ แต่ใครก็ไม่รู้ tinycolor.com ทําการ point มาที่เว็บผม โดย น่าจะ point มาที่ ip ของ server ก็เป็นอย่างที่เห็นในรูป T_T ผมลองหาข้อมูลในการแก้ปัญหานี้+คําแนะนําของพี่ artit-k.com สรุปได้ว่า แก้ไขค่า config ของ nginx (อยู่ที่ file “/etc/nginx/nginx.conf”) เพื่อบังคับให้ Request ไดๆ ก็ตามมาที่ port 80 ถ้าไม่ตรงกับ  Domain ที่เรากําหนดไว้ ให้ redirect 301 ไปยัง url ที่เรากําหนดไว้ หรือไม่ตอบกลับเลยก็ได้ ตามตัวอย่างค่า config ดังนี้

http {

    ...

	# For some invalid name or ip
	server {
		listen       80  default_server;
		server_name  _; # some invalid name that won't match anything
		return 301 ;
	}

    include /etc/nginx/conf.d/*.conf;
}

จุดสําคัญอยู่ที่ return 301 ; ความหมายคือ redirect 301 ไปที่ ซึ่ง 301 ก็คือ response code ซึ่ง 301 หมายความว่า ย้าย domain ไปที่… ศึกษา response code เพิ่มเติมที่ en.wikipedia.org/wiki/List_of_HTTP_status_codes

ถ้าไม่ต้องการให้ตอบกลับเลยก็ใช้ return 444; ได้เลยครับ ซึ่ง 444 เป็น response code หมายถึงไม่ตอบอะไรกลับไปเลย


Copyright © 2019 - 2024 thiti.dev |  v1.34.0 |  Privacy policy | 

Build with ❤️ and Astro.

Github profile   Linkedin profile   Instagram   X profile   Youtube channel   Telegram   Email contact   วงแหวนเว็บ