Điểm:0

Máy chủ Nginx tiếp tục phục vụ trang chính Debian

lá cờ in

Tôi đang cố thiết lập một trang web tùy chỉnh đơn giản. Tôi đã xây dựng một máy chủ đơn giản bằng Golang và khung Gin-gonic. Máy chủ Go của tôi như sau:

hàm chính () {
        r := gin.Default()
        r.GET("/",ServeMainPage)
        r.GET("/icons/openlogo-75.png", func(c *gin.Context) {
                c.File("favicon.ico")
        })
        r.GET("/episode/:id", ServeEpisode)
        r.GET("styles/style.css", func(c *gin.Context) {
                c.File("style/style.css")
        })
        r.GET("scripts/main.js", func(c *gin.Context) {
                c.File("scripts/main.js")
        })
        r.GET("favicon.ico", func(c *gin.Context) {
                c.File("favicon.ico")
        })
        r.Chạy()
}

func ServeMainPage(c *gin.Context) {
        c.File("index.html")
}

func Phục vụEpisode(c *gin.Context) {
        EpisodeID := c.Param("id")
        filepath := "Tệp âm thanh/" + EpisodeID + ".mp3"
        c.File(filepath)
}

Vì quá trình này không thể truy cập cổng 80 (nó chạy trên :8080) và vì tôi đang cố gắng phát triển các kỹ năng của mình nên tôi đã cố gắng thiết lập một máy chủ nginx để hoạt động như một proxy ngược. Máy chủ nginx của tôi có conf sau, đây là mặc định,

http {

        ##
        # Cài đặt cơ bản
        ##

        gửi tệp trên;
        bật tcp_nopus;
        bật tcp_nodelay;
        keepalive_timeout 65;
        loại_hash_max_size 2048;
        # server_token tắt;

        # server_name_hash_bucket_size 64;
        # máy chủ_tên_trong_chuyển hướng tắt;

        bao gồm /etc/nginx/mime.types;
        ứng dụng default_type/octet-stream;

        ##
        # Cài đặt SSL
        ##

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Bỏ SSLv3, tham khảo: POODLE
        bật ssl_prefer_server_ciphers;

        ##
        # Cài đặt ghi nhật ký
        ##
        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;

        ##
        # Cài đặt Gzip
        ##

        bật gzip;

        # gzip_vary bật;
        # gzip_proxied bất kỳ;
        # gzip_comp_cấp 6;
        # gzip_buffers 16 8k;
        # gzip_http_version 1.1;
        # văn bản gzip_types/văn bản thuần túy/ứng dụng css/ứng dụng json/văn bản javascript/ứng dụng xml/ứng dụng xml/xml+văn bản rss/javascript;

        ##
        # Cấu hình máy chủ ảo
        ##

        bao gồm /etc/nginx/conf.d/*.conf;
        bao gồm /etc/nginx/sites-enabled/*;
}

và tôi đã làm theo hướng dẫn đây để nó chuyển tiếp mọi thứ tới ứng dụng Golang của tôi bằng cách thêm phần sau vào /etc/nginx/sites-available/ro và liên kết tượng trưng với /etc/nginx/sites-enabled/ro.

người phục vụ {
        nghe 80;
        server_name running-oaks.com;

        địa điểm / {
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_set_header Máy chủ $http_host;
                proxy_pass "http://127.0.0.1:8080";
        }
}

Nếu tôi sử dụng curl trên PC cục bộ của mình để truy cập máy chủ của mình, tôi sẽ nhận được trang index.html mà tôi muốn truy cập vào máy chủ. Lệnh curl của tôi chỉ đơn giản là quăn http://123.123.123.123, ở đâu 123.123.123.123 được thay thế bằng IP thực của máy chủ từ xa của tôi.

Tuy nhiên, cố gắng truy cập cùng địa chỉ IP này bằng trình duyệt web của tôi chỉ hiển thị cho tôi trang Apache cho Debian mặc định.Tôi đã gỡ cài đặt apache trước khi thiết lập nginx để hy vọng tránh xung đột. Trong cả trường hợp cuộn tròn và trường hợp trình duyệt, tôi có thể thấy rằng ứng dụng Golang của mình đang nhận yêu cầu và trả về trạng thái 200.

Vậy tại sao trình duyệt của tôi cứ hiển thị cho tôi trang debian?

tôi cũng đã thay đổi /var/www/index.html là trang nginx mặc định, mặc dù điều đó cũng chưa sửa được.

Điểm:0
lá cờ de

Vấn đề là yêu cầu của bạn không khớp với khối máy chủ của bạn nhưng lại khớp với khối máy chủ mặc định.

Bạn có:

người phục vụ {
        nghe 80;
        server_name running-oaks.com;

Điều này sẽ khớp với bất kỳ yêu cầu nào đến trên cổng 80 với Tên máy chủ "running-oaks.com".

Ra khỏi hộp, Ubuntu bao gồm một tệp trang web đã được kích hoạt /etc/nginx/sites-enabled/default đó là một liên kết tượng trưng đến /etc/nginx/sites-available/default. Đây là định nghĩa trang cung cấp trang chính của Debian.

Trong tệp cấu hình này, có một khối máy chủ bắt đầu như thế này:

người phục vụ {
        nghe 80 default_server;
        lắng nghe [::]:80 default_server;

Khối này không có server_name, nhưng có default_server chỉ thị. Điều này có nghĩa là bất kỳ yêu cầu nào đến trên cổng 80 không khớp với khối máy chủ khác sẽ sử dụng khối máy chủ này.

Vì yêu cầu của bạn đang sử dụng IP trực tiếp chứ không phải tên máy chủ mà bạn đã chỉ định trong lệnh server_name, nên yêu cầu của bạn khớp với máy chủ mặc định thay vì của chính bạn.

Để khắc phục điều này, bạn có thể xóa liên kết tượng trưng tại /etc/nginx/sites-enabled/default và thêm default_server chỉ thị cho dòng nghe của bạn. Hãy nhớ khởi động lại Nginx sau khi thực hiện việc này.

(Việc thêm default_server là không cần thiết vì nếu chỉ có một máy chủ thì nó sẽ mặc định là máy chủ mặc định, nhưng tốt hơn là nên nói rõ ràng.)

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.