ฉันกำลังพยายามตั้งค่าเว็บไซต์ที่กำหนดเองอย่างง่าย ฉันได้สร้างเซิร์ฟเวอร์อย่างง่ายโดยใช้ Golang และเฟรมเวิร์ก Gin-gonic เซิร์ฟเวอร์ My Go มีดังนี้:
ฟังก์ชันหลัก () {
r := gin.Default()
r.GET("/", เสิร์ฟหน้าหลัก)
r.GET("/icons/openlogo-75.png", func(c *gin.Context) {
c.File("favicon.ico")
})
r.GET("/episode/:id", เสิร์ฟตอน)
r.GET("styles/style.css", func(c *gin.Context) {
c.File("styles/style.css")
})
r.GET("สคริปต์/main.js", func(c *gin.Context) {
c.File("สคริปต์/main.js")
})
r.GET("favicon.ico", func(c *gin.Context) {
c.File("favicon.ico")
})
r.Run()
}
func ServeMainPage (c * gin.Context) {
c.File("index.html")
}
func เสิร์ฟตอน (c * gin.Context) {
รหัสตอน := c.Param("id")
เส้นทางไฟล์ := "AudioFiles/" + รหัสตอน + ".mp3"
ค. ไฟล์ (เส้นทางไฟล์)
}
เนื่องจากกระบวนการนี้ไม่สามารถเข้าถึงพอร์ต 80 (ทำงานบน :8080) และเนื่องจากฉันพยายามพัฒนาทักษะของฉัน ฉันจึงพยายามตั้งค่าเซิร์ฟเวอร์ nginx ให้ทำหน้าที่เป็นพร็อกซีย้อนกลับ เซิร์ฟเวอร์ nginx ของฉันมี conf ต่อไปนี้ ซึ่งเป็นค่าเริ่มต้น
http {
##
# การตั้งค่าพื้นฐาน
##
ส่งไฟล์บน;
tcp_nopush บน;
tcp_nodelay บน;
keepalive_timeout 65;
types_hash_max_size 2048;
# ปิด server_tokens;
# server_names_hash_bucket_size 64;
# server_name_in_redirect ปิด;
รวม /etc/nginx/mime.types;
แอปพลิเคชัน default_type/octet-stream;
##
# การตั้งค่า SSL
##
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # วาง SSLv3 อ้างอิง: พุดเดิ้ล
เปิด ssl_prefer_server_ciphers;
##
# การตั้งค่าการบันทึก
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# การตั้งค่า Gzip
##
เปิด gzip;
# gzip_vary บน;
# gzip_proxyed ใด ๆ ;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types ข้อความ/ข้อความล้วน/แอปพลิเคชัน css/แอปพลิเคชัน json/ข้อความจาวาสคริปต์/แอปพลิเคชัน xml/แอปพลิเคชัน xml/xml+rss ข้อความ/จาวาสคริปต์;
##
# การกำหนดค่าโฮสต์เสมือน
##
รวม /etc/nginx/conf.d/*.conf;
รวม /etc/nginx/sites-enabled/*;
}
และฉันก็ทำตามบทช่วยสอน ที่นี่ เพื่อส่งต่อสิ่งต่าง ๆ ไปยังแอพ Golang ของฉันโดยเพิ่มสิ่งต่อไปนี้ /etc/nginx/sites-available/ro
และสัญลักษณ์ที่เชื่อมโยงถึง /etc/nginx/sites-enabled/ro
.
เซิร์ฟเวอร์ {
ฟัง 80;
server_name รัน-oaks.com;
ที่ตั้ง / {
proxy_set_header X-ส่งต่อ-สำหรับ $remote_addr;
proxy_set_header โฮสต์ $http_host;
proxy_pass "http://127.0.0.1:8080";
}
}
ถ้าฉันใช้ curl บนเครื่องพีซีของฉันเพื่อเข้าถึงเซิร์ฟเวอร์ของฉัน ฉันจะได้รับหน้า index.html ที่ต้องการไปยังเซิร์ฟเวอร์ คำสั่ง curl ของฉันนั้นเรียบง่าย ขด http://123.123.123.123
, ที่ไหน 123.123.123.123
ถูกแทนที่ด้วย IP จริงของเซิร์ฟเวอร์ระยะไกลของฉัน
อย่างไรก็ตาม การพยายามเข้าถึงที่อยู่ IP เดียวกันนี้ด้วยเว็บเบราว์เซอร์ของฉันก็แสดงหน้า Apache สำหรับ Debian ที่เป็นค่าเริ่มต้นให้ฉันฉันถอนการติดตั้ง apache ก่อนตั้งค่า nginx เพื่อ หวังว่า หลีกเลี่ยงความขัดแย้ง ทั้งในกรณี curl และกรณีเบราว์เซอร์ ฉันเห็นว่าแอป Golang ของฉันได้รับคำขอและส่งคืนสถานะ 200
เหตุใดเบราว์เซอร์ของฉันจึงแสดงหน้าเดเบียนให้ฉันเห็นอยู่เสมอ
ฉันยังเปลี่ยนไป /var/www/index.html
เป็นหน้า nginx เริ่มต้นแม้ว่าจะไม่ได้แก้ไขก็ตาม