Điểm:0

Nginx chuyển hướng đến http://localhost

lá cờ cz

Hình ảnh tóm tắt về tình hình

  • Tôi không thể sử dụng địa chỉ miền cho tên máy chủ bởi vì tôi không thể kiểm soát máy chủ DNS. Tôi phải sử dụng IP công cộng để kết nối với máy chủ web của mình.
  • Vì vậy, tôi thiết lập tên máy chủ đến _;, nhưng khi tôi yêu cầu http://firewall-public-ip:5000 nó chuyển hướng đến http://localhost:5000.
  • Tôi thường có thể mở các trang khác không sử dụng chuyển hướng. Ví dụ, tôi có thể truy cập http://firewall-public-ip:5000/login và đăng nhập, nhưng sau đó nó chuyển hướng đến http://localhost:5000/đăng nhập bởi vì trang đăng nhập sử dụng chuyển hướng sau khi đăng nhập.

nginx.conf:

# Để biết thêm thông tin về cấu hình, hãy xem:
# * Tài liệu tiếng Anh chính thức: http://nginx.org/en/docs/
# * Tài liệu chính thức của Nga: http://nginx.org/ru/docs/

người dùng nginx;
worker_processes tự động;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Tải các mô-đun động. Xem /usr/share/doc/nginx/README.dynamic.
bao gồm /usr/share/nginx/modules/*.conf;

sự kiện {
    công_nhân kết_nối 1024 ;
}

http {
    log_format chính '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log /var/log/nginx/access.log chính;

    gửi tệp trên;
    bật tcp_nopus;
    bật tcp_nodelay;
    keepalive_timeout 65;
    loại_hash_max_size 4096;
    proxy_hide_header X-Powered-By;
    proxy_hide_header Máy chủ;

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

    # Tải các tệp cấu hình mô-đun từ thư mục /etc/nginx/conf.d.
    # Xem http://nginx.org/en/docs/ngx_core_module.html#include
    # để biết thêm thông tin.
    bao gồm /etc/nginx/conf.d/*.conf;

người phục vụ {
    nghe 5000;

    tên máy chủ _;
    server_name_in_redirect tắt;
    ssl_protocols TLSv1.2;

    địa điểm '/' {
        proxy_pass http://unix:/var/sockets/gunicorn.sock;
    }
  }
}

Làm thế nào để tôi khắc phục điều này? Một lần nữa, tôi không thể sử dụng địa chỉ miền cho máy chủ này.

* CHỈNH SỬA đã thêm chuyển hướng ứng dụng

@blueprint.route('/')
định tuyến_default():
    chuyển hướng trở lại (url_for('authentication_blueprint.login'))


@blueprint.route('/login', methods=['GET', 'POST'])
đăng nhập chắc chắn():
    login_form = LoginForm(request.form)
    nếu 'đăng nhập' trong request.form:

        # đọc dữ liệu biểu mẫu
        tên người dùng = request.form['tên người dùng']
        mật khẩu = request.form['password']

        # Định vị người dùng
        người dùng = Users.query.filter_by(tên người dùng=tên người dùng).first()

        # Kiểm tra mật khẩu
        nếu người dùng và verify_pass(mật khẩu, người dùng. mật khẩu):

            login_user(người dùng)
            chuyển hướng trở lại (url_for('authentication_blueprint.route_default'))

        # Có gì đó (người dùng hoặc mật khẩu) không ổn
        trả về render_template('accounts/login.html',
                               msg='Sai người dùng hoặc mật khẩu',
                               biểu mẫu=login_form)

    nếu không phải là current_user.is_authenticated:
        trả về render_template('accounts/login.html',
                               biểu mẫu=login_form)
    chuyển hướng trở lại (url_for('home_blueprint.index'))

apps.authentication.__init__.py

từ bản thiết kế nhập bình

kế hoạch chi tiết = Bản thiết kế(
    'authentication_blueprint',
    __Tên__,
    url_prefix=''
)
Điểm:1
lá cờ us

nginx không gửi bất kỳ chuyển hướng nào với cấu hình này.

Chuyển hướng đến từ ứng dụng của bạn đó là proxy_pass Mục tiêu. Ứng dụng rất có thể có cài đặt "URL cơ sở", nơi bạn cần đặt địa chỉ IP của mình.

Lunartist avatar
lá cờ cz
Lý do tôi đặt câu hỏi về nginx.conf là vì điều này: https://serverfault.com/questions/186896/nginx-redirecting-to-localhost
Lunartist avatar
lá cờ cz
Đã chỉnh sửa câu hỏi để bao gồm chuyển hướng ứng dụng. Bạn có nghĩ rằng tôi nên mở lại câu hỏi bằng thẻ Flask không?
Lunartist avatar
lá cờ cz
FYI: Máy chủ mở bình thường nếu tôi không sử dụng Nginx và chỉ sử dụng `gunicorn --bind 0.0.0.0:5000 --user bpimanager run:app`.

Đă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.