ดังนั้น ฉันเพิ่งติดตั้ง Digital Ocean Droplet ด้วย Ubuntu 20.04 พร้อมเว็บเซิร์ฟเวอร์ nginxฉันเริ่มต้นเว็บไซต์หนึ่งบอกว่า example.com ใช้การตั้งค่า nginx จากนั้น IP ของมหาสมุทรดิจิทัลเป็นบันทึกในแผง DNS ของโดเมน
ดังนั้น example.com จึงทำงานได้ดี แต่ไม่รู้ว่าฉันใส่ IP เดียวกันในโดเมนอื่นโดยบอกว่า example1.com และตอนนี้ทั้ง example1.com และ example.com กำลังเปิดเว็บไซต์เดียวกัน
จึงเกิดคำถามขึ้นว่าโดเมนอื่นใดที่รู้จัก IP ของฉันสามารถใช้ IP นี้แสดงเว็บไซต์ที่ไม่ควรอนุญาตได้
ฉันไม่ชัดเจนว่าต้องกำหนดค่าใดในระดับ OS หรือระดับเซิร์ฟเวอร์เพื่อป้องกันไม่ให้โดเมนที่ไม่ต้องการใช้ IP นี้หรือเพิ่มบางโดเมนบนเซิร์ฟเวอร์เพื่ออนุญาตโดเมนที่ระบุเท่านั้น
เซิร์ฟเวอร์ {
ฟัง 80;
ส่งคืน 301 https://$host$request_uri;
}
เซิร์ฟเวอร์ {
ฟัง 443 เริ่มต้น ssl http2;
server_name example.com;
ssl_session_cache ในตัว:1000 แชร์:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers สูง:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
เปิด ssl_prefer_server_ciphers;
เปิด gzip;
เปิด gzip_static;
แบบอักษร gzip_types/ข้อความ woff2/ข้อความล้วน/แอปพลิเคชัน css/แอปพลิเคชัน json/ข้อความ x-javascript/แอปพลิเคชัน xml/แอปพลิเคชัน xml/xml>
gzip_proxyed ใด ๆ ;
gzip_vary บน;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
นี่คือการกำหนดค่าทั้งหมดของ nginx:
ไฟล์การกำหนดค่า /etc/nginx/sites-enabled/ug:
เซิร์ฟเวอร์ {
ฟัง 80 default_server;
กลับ 404;
# ส่งคืน 301 https://$host$request_uri;
}
เซิร์ฟเวอร์ {
ฟัง 443 ssl http2;
server_name example.com;
ssl_session_cache ในตัว:1000 แชร์:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers สูง:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
เปิด ssl_prefer_server_ciphers;
เปิด gzip;
เปิด gzip_static;
แบบอักษร gzip_types/ข้อความ woff2/ข้อความล้วน/แอปพลิเคชัน css/แอปพลิเคชัน json/ข้อความ x-javascript/แอปพลิเคชัน xml/แอปพลิเคชัน xml/xml+ข้อความ rss/แอปพลิเคชันจาวาสคริปต์/จาวาสคริปต์;
gzip_proxyed ใด ๆ ;
gzip_vary บน;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
# กลับ 404;
ที่ตั้ง / {
ดัชนี index.html
add_header Pragma "ไม่มีแคช";
add_header Cache-Control "ไม่มีที่เก็บ, ไม่มีแคช, ต้องตรวจสอบความถูกต้องอีกครั้ง, ตรวจสอบภายหลัง = 0, ตรวจสอบล่วงหน้า = 0";
try_files $uri $uri @สากล;
รูท /home/winnc/www/us/dist/ecommcerce/server;
}
ที่ตั้ง @สากล {
#port ที่กำหนดไว้ใน server.js ของคุณ
proxy_pass http://localhost:4000;
proxy_http_version 1.1;
proxy_set_header อัพเกรด $http_upgrade;
proxy_set_header การเชื่อมต่อ 'อัปเกรด';
proxy_set_header โฮสต์ $host;
proxy_cache_bypass $http_upgrade;
}
ตำแหน่ง / ผู้ดูแลระบบ {
ดัชนี index.html
add_header Pragma "ไม่มีแคช";
add_header Cache-Control "ไม่มีที่เก็บ, ไม่มีแคช, ต้องตรวจสอบความถูกต้องอีกครั้ง, ตรวจสอบภายหลัง = 0, ตรวจสอบล่วงหน้า = 0";
try_files $uri $uri/admin @สากล-admin;
รูท /home/winnc/www/us/dist/ecommerce-admin/server/dist/ecommerce-admin/browser;
}
ตำแหน่ง @ ผู้ดูแลระบบสากล {
#port ที่กำหนดไว้ใน server.js ของคุณ
proxy_pass http://localhost:4001;
proxy_http_version 1.1;
proxy_set_header อัพเกรด $http_upgrade;
proxy_set_header การเชื่อมต่อ 'อัปเกรด';
proxy_set_header โฮสต์ $host;
proxy_cache_bypass $http_upgrade;
}
ตำแหน่ง /api/ {
proxy_pass http://localhost:5000;
proxy_http_version 1.1;
proxy_set_header อัพเกรด $http_upgrade;
proxy_set_header การเชื่อมต่อคงอยู่;
proxy_set_header โฮสต์ $host;
proxy_cache_bypass $http_upgrade;
proxy_redirect http://localhost:5000 https://example.com;
รูท /home/winnc/www/us;
}
สถานที่ /เนื้อหา/ {
proxy_pass http://localhost:5000;
proxy_http_version 1.1;
proxy_set_header อัพเกรด $http_upgrade;
proxy_set_header การเชื่อมต่อคงอยู่;
proxy_set_header โฮสต์ $host;
proxy_cache_bypass $http_upgrade;
proxy_redirect http://localhost:5000 https://example.com;
รูท /home/winnc/www/us;
}
# ฟัง 443 ssl; # จัดการโดย Certbot
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # จัดการโดย Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # จัดการโดย Certbot
# รวม /etc/letsencrypt/options-ssl-nginx.conf; # จัดการโดย Certbot
# ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # จัดการโดย Certbot
}
#เซิร์ฟเวอร์ {
# ถ้า ($host = example.com) {
# ส่งคืน 301 https://$host$request_uri;
# } # จัดการโดย Certbot
# server_name example.com;
# ฟัง 80;
# กลับ 404; # จัดการโดย Certbot
#}