Score:0

Nginx เปลี่ยนเส้นทางไปที่ http://localhost

ธง cz

ภาพสถานการณ์โดยสังเขป

  • ฉันไม่สามารถใช้ที่อยู่โดเมนสำหรับ ชื่อเซิร์ฟเวอร์ เพราะฉันไม่สามารถควบคุมเซิร์ฟเวอร์ DNS ได้ ฉันต้องใช้ IP สาธารณะเพื่อเชื่อมต่อกับเว็บเซิร์ฟเวอร์ของฉัน
  • ดังนั้นฉันจึงตั้งค่า ชื่อเซิร์ฟเวอร์ ถึง _;แต่เมื่อฉันร้องขอ http://firewall-public-ip:5000 มันเปลี่ยนเส้นทางไปที่ http://localhost:5000.
  • ปกติฉันสามารถเปิดหน้าอื่นๆ ที่ไม่ใช้การเปลี่ยนเส้นทางได้ ตัวอย่างเช่นฉันสามารถเข้าถึงได้ http://firewall-public-ip:5000/login และเข้าสู่ระบบ แต่มันเปลี่ยนเส้นทางไปที่ http://localhost:5000/เข้าสู่ระบบ เนื่องจากหน้าเข้าสู่ระบบใช้การเปลี่ยนเส้นทางหลังจากเข้าสู่ระบบ

nginx.conf:

# สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่า ดู:
# * เอกสารภาษาอังกฤษอย่างเป็นทางการ: http://nginx.org/en/docs/
# * เอกสารทางการของรัสเซีย: http://nginx.org/ru/docs/

ผู้ใช้ nginx;
worker_processes อัตโนมัติ
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# โหลดโมดูลไดนามิก ดู /usr/share/doc/nginx/README.dynamic
รวม /usr/share/nginx/modules/*.conf;

เหตุการณ์ {
    worker_connections 1024;
}

http {
    log_format main '$remote_addr - $remote_user [$time_local] "$request"'
                      '$สถานะ $body_bytes_sent "$http_referer"'
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log /var/log/nginx/access.log หลัก;

    ส่งไฟล์บน;
    tcp_nopush บน;
    tcp_nodelay บน;
    keepalive_timeout 65;
    types_hash_max_size 4096;
    proxy_hide_header X-ขับเคลื่อนโดย;
    เซิร์ฟเวอร์ proxy_hide_header;

    รวม /etc/nginx/mime.types;
    แอปพลิเคชัน default_type/octet-stream;

    # โหลดไฟล์การกำหนดค่าแบบแยกส่วนจากไดเร็กทอรี /etc/nginx/conf.d
    # ดู http://nginx.org/en/docs/ngx_core_module.html#include
    # สำหรับข้อมูลเพิ่มเติม.
    รวม /etc/nginx/conf.d/*.conf;

เซิร์ฟเวอร์ {
    ฟัง 5,000;

    ชื่อเซิร์ฟเวอร์ _;
    server_name_in_redirect ปิด;
    ssl_protocols TLSv1.2;

    ที่ตั้ง '/' {
        proxy_pass http://unix:/var/sockets/gunicorn.sock;
    }
  }
}

ฉันจะแก้ไขปัญหานี้ได้อย่างไร อีกครั้ง ฉันไม่สามารถใช้ที่อยู่โดเมนกับเซิร์ฟเวอร์นี้ได้

* แก้ไข เพิ่มการเปลี่ยนเส้นทางแอปพลิเคชัน

@blueprint.route('/')
def route_default():
    ส่งคืนการเปลี่ยนเส้นทาง (url_for ('authentication_blueprint.login'))


@blueprint.route('/login', method=['GET', 'POST'])
เข้าสู่ระบบ def ():
    login_form = แบบฟอร์มการเข้าสู่ระบบ (request.form)
    ถ้า 'เข้าสู่ระบบ' ในแบบฟอร์มคำขอ:

        # อ่านข้อมูลแบบฟอร์ม
        ชื่อผู้ใช้ = request.form ['ชื่อผู้ใช้']
        รหัสผ่าน = request.form ['รหัสผ่าน']

        # ค้นหาผู้ใช้
        ผู้ใช้ = Users.query.filter_by(ชื่อผู้ใช้=ชื่อผู้ใช้).อันดับแรก()

        #ตรวจสอบรหัสผ่าน
        ถ้าผู้ใช้และ Verify_pass(รหัสผ่าน, user.password):

            login_user (ผู้ใช้)
            ส่งคืนการเปลี่ยนเส้นทาง (url_for ('authentication_blueprint.route_default'))

        # บางอย่าง (ผู้ใช้หรือผ่าน) ไม่เป็นไร
        ส่งคืน render_template('accounts/login.html',
                               msg='ผู้ใช้หรือรหัสผ่านไม่ถูกต้อง',
                               แบบฟอร์ม=เข้าสู่ระบบ_แบบฟอร์ม)

    หากไม่ใช่ current_user.is_authenticated:
        ส่งคืน render_template('accounts/login.html',
                               แบบฟอร์ม=เข้าสู่ระบบ_แบบฟอร์ม)
    ส่งคืนการเปลี่ยนเส้นทาง (url_for ('home_blueprint.index'))

apps.authentication.__init__.py

จากพิมพ์เขียวนำเข้ากระติกน้ำ

พิมพ์เขียว = พิมพ์เขียว (
    'การรับรองความถูกต้อง_พิมพ์เขียว',
    __ชื่อ__,
    url_prefix=''
)
Score:1
ธง us

nginx ไม่ส่งการเปลี่ยนเส้นทางด้วยการกำหนดค่านี้

การเปลี่ยนเส้นทางมาจากแอปพลิเคชันของคุณนั่นคือ proxy_pass เป้า. แอปพลิเคชันน่าจะมีการตั้งค่า "base URL" ซึ่งคุณต้องใส่ที่อยู่ IP ของคุณ

Lunartist avatar
cz flag
เหตุผลที่ฉันถาม nginx.conf เป็นเพราะ: https://serverfault.com/questions/186896/nginx-redirecting-to-localhost
Lunartist avatar
cz flag
แก้ไขคำถามเพื่อรวมการเปลี่ยนเส้นทางแอปพลิเคชัน คุณคิดว่าฉันควรเปิดคำถามอีกครั้งด้วยแท็ก Flask หรือไม่
Lunartist avatar
cz flag
FYI: เซิร์ฟเวอร์เปิดตามปกติหากฉันไม่ได้ใช้ Nginx และเพียงแค่ใช้ `gunicorn --bind 0.0.0.0:5000 --user bpimanager run:app`

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา