Score:1

ฉันจะตั้งค่าแอป Django หลายแอปโดยใช้ Supervisor (รวมถึง Gunicorn และ Nginx) ได้อย่างไร การผูก () กับ [::]:8090 ล้มเหลว (98: ที่อยู่ที่ใช้งานแล้ว)

ธง us

ฉันติดตั้งแอป Django/Wagtail โดยใช้ Supervisor, Gunicorn และ Nginx (บน Debian Buster) แล้ว ดังนั้นฉันจึงสามารถเข้าถึงได้ด้วย http://xx.xxx.xxx.xxx:8090.

/etc/nginx/sites-available/cms

เซิร์ฟเวอร์ {
    ชื่อเซิร์ฟเวอร์ xx.xxx.xxx.xxx;
    ฟัง 8090;
    ฟัง [::]:8090 ipv6only=เปิด;
    error_log /home/www.mysite.com/.local/share/virtualenvs/cms-WqsZ9qOt/var/log/gunicorn-error.log;
    access_log /home/www.mysite.com/.local/share/virtualenvs/cms-WqsZ9qOt/var/log/gunicorn-access.log;

    สถานที่ = /favicon.ico { access_log off; ปิด log_not_found; }
    ตำแหน่ง / คงที่ / {
        รูท /home/www.mysite.com/www/my-site/cms/admin_panel;
    }
        สถานที่ /สื่อ/ {
        รูท /home/www.mysite.com/www/my-site/cms/admin_panel;
    }

    ที่ตั้ง / {
        รวม proxy_params;
        proxy_pass http://unix:/home/www.mysite.com/.local/share/virtualenvs/cms-WqsZ9qOt/run/gunicorn.sock;
    }
}
/etc/supervisor/conf.d/guni-mysite-admin.conf

[โปรแกรม: guni-mysite-admin]
command=/home/www.mysite.com/.local/share/virtualenvs/cms-WqsZ9qOt/bin/gunicorn admin_panel.wsgi:application --config /home/www.mysite.com/.local/share/virtualenvs/cms -WqsZ9qOt/etc/gunicorn/conf.py
ผู้ใช้=www.mysite.com
autostart = จริง
รีสตาร์ทอัตโนมัติ = จริง
/etc/supervisor/conf.d/nginx-mysite-admin.conf

[โปรแกรม:nginx-mysite-admin]
command=/usr/sbin/nginx -g "ปิดภูต"
autostart = จริง
รีสตาร์ทอัตโนมัติ = จริง
stderr_logfile=/home/www.mysite.com/.local/share/virtualenvs/cms-WqsZ9qOt/var/log/nginx-error.log
stdout_logfile=/home/www.mysite.com/.local/share/virtualenvs/cms-WqsZ9qOt/var/log/nginx-access.log
stderr_logfile_maxbytes=2MB
stdout_logfile_maxbytes=2MB
/home/www.mysite.com/.local/share/virtualenvs/cms-WqsZ9qOt/etc/gunicorn/conf.py

คนงาน = 3
Keepalive = 5
ผู้ใช้ = 'www.mysite.com'
proc_name = 'admin_panel'
ล็อกเลเวล = 'ข้อผิดพลาด'
errorlog = '/home/www.mysite.com/.local/share/virtualenvs/cms-WqsZ9qOt/var/log/gunicorn-error.log'
accesslog = '/home/www.mysite.com/.local/share/virtualenvs/cms-WqsZ9qOt/var/log/gunicorn-access.log'
ผูก = 'unix:/home/www.mysite.com/.local/share/virtualenvs/cms-WqsZ9qOt/run/gunicorn.sock'
raw_env = ['DJANGO_SETTINGS_MODULE=admin_panel.settings.production']
pythonpath = '/home/www.mysite.com/www/mysite/cms/admin_panel'

ตอนนี้ฉันเพิ่มแอป Django อีก 2 แอปด้วยวิธีเดียวกัน น่าเสียดายที่ Supervisor ไม่สามารถนำมันขึ้นมาได้ บางครั้ง 1 ใน 3 ของการวิ่ง แต่ส่วนใหญ่ไม่ได้ผล ในกรณีที่ใช้งานได้จะสร้าง 3 กระบวนการ (idk หากเป็นเช่นนั้น)

$ sudo lsof -i:8090

คำสั่ง PID ผู้ใช้ ประเภท FD ขนาดอุปกรณ์/ปิด ชื่อโหนด
nginx 3631 รูท 16u IPv4 961301189 0t0 TCP *:8090 (ฟัง)
nginx 3631 รูท 17u IPv6 961301190 0t0 TCP *:8090 (ฟัง)
nginx 3632 www-data 16u IPv4 961301189 0t0 TCP *:8090 (ฟัง)
nginx 3632 www-data 17u IPv6 961301190 0t0 TCP *:8090 (ฟัง)
nginx 3633 www-data 16u IPv4 961301189 0t0 TCP *:8090 (ฟัง)
nginx 3633 www-data 17u IPv6 961301190 0t0 TCP *:8090 (ฟัง)

บันทึกข้อผิดพลาด Nginx ให้ 98: แอดเดรสถูกใช้งานแล้วแม้แต่ในพอร์ต 81 (เอาไปเป็นพอร์ตเริ่มต้นเพราะ Apache ใช้ 80) ซึ่งไม่ได้ใช้ Apache ไม่ควรเป็นปัญหา เพราะมันไม่ทำงาน แม้ว่า Apache จะปิดอยู่ก็ตาม

/var/log/nginx/error.log

...
2021/08/06 12:41:54 [ฉุกเฉิน] 24927#24927: การผูก () กับ [::]:4020 ล้มเหลว (98: ที่อยู่ที่ใช้งานอยู่แล้ว)
2021/08/06 12:41:54 [ฉุกเฉิน] 24927#24927: การผูก () กับ [::]:8090 ล้มเหลว (98: ที่อยู่ที่ใช้งานอยู่แล้ว)
2021/08/06 12:41:54 [ฉุกเฉิน] 24927#24927: การผูก () กับ [::]:81 ล้มเหลว (98: ที่อยู่ที่ใช้งานอยู่แล้ว)
2021/08/06 12:41:54 [ฉุกเฉิน] 24927#24927: การผูก () กับ [::]:8070 ล้มเหลว (98: ที่อยู่ที่ใช้งานอยู่แล้ว)
2021/08/06 12:41:54 [ฉุกเฉิน] 24927#24927: การผูก () กับ [::]:8080 ล้มเหลว (98: ที่อยู่ที่ใช้งานอยู่แล้ว)
2021/08/06 12:41:54 [ฉุกเฉิน] 24927#24927: การผูก () กับ [::]:4030 ล้มเหลว (98: ที่อยู่ที่ใช้งานอยู่แล้ว)
2021/08/06 12:41:54 [ฉุกเฉิน] 24928#24928: ยังไม่สามารถผูก()
...

เอาต์พุต - # nginx -T

nginx: ไฟล์การกำหนดค่า /etc/nginx/nginx.conf ไวยากรณ์ใช้ได้
nginx: การทดสอบไฟล์การกำหนดค่า /etc/nginx/nginx.conf สำเร็จ
# ไฟล์กำหนดค่า /etc/nginx/nginx.conf:
ผู้ใช้ www-data;
worker_processes อัตโนมัติ
pid /run/nginx.pid;
รวม /etc/nginx/modules-enabled/*.conf;

เหตุการณ์ {
    worker_connections 768;
    # multi_accept บน;
}

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/*;
}


#จดหมาย {
# # ดูตัวอย่างสคริปต์การตรวจสอบได้ที่:
# # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
# # auth_http localhost/auth.php;
# # pop3_capabilities "TOP" "ผู้ใช้";
# # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
# เซิร์ฟเวอร์ {
# ฟัง localhost:110;
#โปรโตคอลpop3;
# เปิดพร็อกซี;
# }
#
# เซิร์ฟเวอร์ {
# ฟัง localhost:143;
# โปรโตคอล imap;
# เปิดพร็อกซี;
# }
#}

# ไฟล์กำหนดค่า /etc/nginx/modules-enabled/50-mod-http-auth-pam.conf:
load_module โมดูล/ngx_http_auth_pam_module.so;

# ไฟล์กำหนดค่า /etc/nginx/modules-enabled/50-mod-http-dav-ext.conf:
load_module โมดูล/ngx_http_dav_ext_module.so;

# ไฟล์กำหนดค่า /etc/nginx/modules-enabled/50-mod-http-echo.conf:
load_module โมดูล/ngx_http_echo_module.so;

# ไฟล์กำหนดค่า /etc/nginx/modules-enabled/50-mod-http-geoip.conf:
load_module โมดูล/ngx_http_geoip_module.so;

# ไฟล์กำหนดค่า /etc/nginx/modules-enabled/50-mod-http-image-filter.conf:
load_module โมดูล/ngx_http_image_filter_module.so;

# ไฟล์กำหนดค่า /etc/nginx/modules-enabled/50-mod-http-subs-filter.conf:
load_module โมดูล/ngx_http_subs_filter_module.so;

# ไฟล์การกำหนดค่า /etc/nginx/modules-enabled/50-mod-http-upstream-fair.conf:
load_module โมดูล/ngx_http_upstream_fair_module.so;

# ไฟล์กำหนดค่า /etc/nginx/modules-enabled/50-mod-http-xslt-filter.conf:
load_module โมดูล/ngx_http_xslt_filter_module.so;

# ไฟล์กำหนดค่า /etc/nginx/modules-enabled/50-mod-mail.conf:
load_module โมดูล/ngx_mail_module.so;

# ไฟล์กำหนดค่า /etc/nginx/modules-enabled/50-mod-stream.conf:
load_module โมดูล/ngx_stream_module.so;

# ไฟล์กำหนดค่า /etc/nginx/mime.types:

ประเภท {
    ข้อความ/html html htm shtml;
    ข้อความ/css css;
    ข้อความ/xml xml;
    รูปภาพ/gif gif;
    รูปภาพ/jpeg jpeg jpg;
    แอปพลิเคชัน/จาวาสคริปต์ js;
    แอ็พพลิเคชัน/atom+xml อะตอม;
    แอปพลิเคชัน/rss+xml rss;

    ข้อความ/mathml mml;
    ข้อความ/ธรรมดา txt;
    text/vnd.sun.j2me.app-descriptor jad;
    ข้อความ/vnd.wap.wml wml;
    ข้อความ/x-คอมโพเนนต์ htc;

    รูปภาพ/png png;
    รูปภาพ/tiff tif tiff;
    ภาพ/vnd.wap.wbmp wbmp;
    ไอคอนรูปภาพ/x-icon;
    ภาพ/x-jng jng;
    ภาพ/x-ms-bmp bmp;
    ภาพ/svg+xml svg svgz;
    รูปภาพ/เว็บเพจ เว็บเพจ;

    แอปพลิเคชัน/ฟอนต์-woff woff;
    แอปพลิเคชัน / java-archive jar war ear;
    แอปพลิเคชัน/json json;
    แอปพลิเคชัน/mac-binhex40 hqx;
    เอกสารแอปพลิเคชัน/msword;
    ใบสมัคร/pdf pdf;
    ใบสมัคร/postscript ps eps ai;
    แอปพลิเคชัน/rtf rtf;
    แอปพลิเคชัน/vnd.apple.mpegurl m3u8;
    แอปพลิเคชัน/vnd.ms-excel xls;
    application/vnd.ms-fontobject eot;
    แอปพลิเคชัน/vnd.ms-powerpoint ppt;
    แอปพลิเคชัน/vnd.wap.wmlc wmlc;
    application/vnd.google-earth.kml+xml kml;
    แอปพลิเคชัน/vnd.google-earth.kmz kmz;
    แอปพลิเคชัน/x-7z-บีบอัด 7z;
    ใบสมัคร/x-cocoa cco;
    แอปพลิเคชัน/x-java-archive-diff jardiff;
    แอปพลิเคชัน/x-java-jnlp-file jnlp;
    เรียกใช้แอปพลิเคชัน / x-makeself;
    แอปพลิเคชัน/x-perl pl pm;
    แอปพลิเคชัน/x-pilot prc pdb;
    แอปพลิเคชั่น/x-rar-บีบอัด rar;
    แอปพลิเคชั่น / x-redhat-package-manager รอบต่อนาที;
    ใบสมัคร / ทะเล x-sea;
    แอปพลิเคชั่น/x-shockwave-แฟลช swf;
    แอปพลิเคชั่น / นั่ง x-stuffit;
    ใบสมัคร/x-tcl tcl tk;
    ใบสมัคร/x-x509-ca-cert จาก pem crt;
    แอปพลิเคชัน/x-xpinstall xpi;
    แอปพลิเคชัน/xhtml+xml xhtml;
    แอปพลิเคชัน/xspf+xml xspf;
    แอปพลิเคชั่น / ซิปซิป;

    แอปพลิเคชัน / octet-stream bin exe dll;
    แอ็พพลิเคชัน/octet-stream deb;
    แอปพลิเคชัน/octet-stream dmg;
    แอปพลิเคชั่น/octet-stream iso img;
    แอปพลิเคชัน/ออคเต็ตสตรีม msi msp msm;

    แอปพลิเคชัน/vnd.openxmlformats-officedocument.wordprocessingml.document docx;
    แอปพลิเคชัน/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx;
    แอปพลิเคชัน/vnd.openxmlformats-officedocument.presentationml.การนำเสนอ pptx;

    เสียง/midi กลาง midi kar;
    เสียง/mpeg mp3;
    เสียง/ogg ogg;
    เสียง/x-m4a m4a;
    เสียง/x-realaudio ra;

    วิดีโอ/3gpp 3gpp 3gp;
    วิดีโอ/mp2t ts;
    วิดีโอ/mp4 mp4;
    วิดีโอ/mpeg mpeg mpg;
    วิดีโอ/quicktime mov;
    วิดีโอ/เว็บเอ็ม เว็บเอ็ม;
    วิดีโอ/x-flv flv;
    วิดีโอ/x-m4v m4v;
    วิดีโอ/x-mng mng;
    วิดีโอ/x-ms-asf asx asf;
    วิดีโอ/x-ms-wmv wmv;
    วิดีโอ/x-msvideo avi;
}

# ไฟล์กำหนดค่า /etc/nginx/conf.d/timeout.conf:
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;

# ไฟล์การกำหนดค่า /etc/nginx/sites-enabled/admin.mysite_2:
เซิร์ฟเวอร์ {
    ชื่อเซิร์ฟเวอร์ xx.xxx.xxx.xxx;
    ฟัง 4020;
    ฟัง [::]:4020 ipv6only=เปิด;
    error_log /home/www.mysite_2/.local/share/virtualenvs/cms-CiomF2CE/var/log/gunicorn-error.log;
    access_log /home/www.mysite_2/.local/share/virtualenvs/cms-CiomF2CE/var/log/gunicorn-access.log;

    # add_header 'การควบคุมการเข้าถึง - อนุญาต - ต้นทาง' '*';
    # add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
    # add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';

    สถานที่ = /favicon.ico { access_log off; ปิด log_not_found; }
    ตำแหน่ง / คงที่ / {
        รูท /home/mysite_2/www/translator-app-python/cms/wagtail_cms;
    }
        สถานที่ /สื่อ/ {
        รูท /home/mysite_2/www/translator-app-python/cms/wagtail_cms;
    }

    ที่ตั้ง / {
        รวม proxy_params;
        proxy_pass http://unix:/home/mysite_2/.local/share/virtualenvs/cms-CiomF2CE/run/gunicorn.sock;
    }
}
# ไฟล์กำหนดค่า /etc/nginx/proxy_params:
proxy_set_header โฮสต์ $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

# ไฟล์การกำหนดค่า /etc/nginx/sites-enabled/cms:
เซิร์ฟเวอร์ {
    ชื่อเซิร์ฟเวอร์ xx.xxx.xxx.xxx;
    ฟัง 8090;
    ฟัง [::]:8090 ipv6only=เปิด;
    error_log /home/mysite_1/.local/share/virtualenvs/cms-WqsZ9qOt/var/log/gunicorn-error.log;
    access_log /home/mysite_1/.local/share/virtualenvs/cms-WqsZ9qOt/var/log/gunicorn-access.log;

    # add_header 'การควบคุมการเข้าถึง - อนุญาต - ต้นทาง' '*';
    # add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
    # add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';

    สถานที่ = /favicon.ico { access_log off; ปิด log_not_found; }
    ตำแหน่ง / คงที่ / {
        รูท /home/mysite_1/www/kc-site/cms/admin_panel;
    }
        สถานที่ /สื่อ/ {
        ราก /home/wmysite_1/www/kc-site/cms/admin_panel;
    }

    ที่ตั้ง / {
        รวม proxy_params;
        proxy_pass http://unix:/home/mysite_1/.local/share/virtualenvs/cms-WqsZ9qOt/run/gunicorn.sock;
    }
}
# ไฟล์กำหนดค่า /etc/nginx/sites-enabled/default:
##
# คุณควรดู URL ต่อไปนี้เพื่อทำความเข้าใจที่แน่นอน
# ของไฟล์การกำหนดค่า Nginx เพื่อปลดปล่อยพลังของ Nginx ได้อย่างเต็มที่
# https://www.nginx.com/resources/wiki/start/
# https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/
# https://wiki.debian.org/Nginx/DirectoryStructure
#
# ในกรณีส่วนใหญ่ ผู้ดูแลระบบจะลบไฟล์นี้ออกจากไซต์ที่เปิดใช้งาน/ และ
# ปล่อยให้เป็นข้อมูลอ้างอิงภายในไซต์ที่มีอยู่ซึ่งจะยังคงอยู่ต่อไป
# อัปเดตโดยทีมบรรจุภัณฑ์ nginx
#
# ไฟล์นี้จะโหลดไฟล์การกำหนดค่าที่ผู้อื่นให้มาโดยอัตโนมัติ
# แอปพลิเคชัน เช่น Drupal หรือ Wordpress แอปพลิเคชันเหล่านี้จะทำขึ้น
# อยู่ภายใต้เส้นทางที่มีชื่อแพ็คเกจนั้น เช่น /drupal8
#
# โปรดดู /usr/share/doc/nginx-doc/examples/ สำหรับตัวอย่างโดยละเอียดเพิ่มเติม
##

# การกำหนดค่าเซิร์ฟเวอร์เริ่มต้น
#
เซิร์ฟเวอร์ {
    # ไวยากรณ์อื่น
    ฟัง 81 default_server;
    ฟัง [::]:81 ipv6only=บน default_server;

    # การกำหนดค่า SSL
    #
    # ฟัง 443 ssl default_server;
    # ฟัง [::]:443 ssl default_server;
    #
    # หมายเหตุ: คุณควรปิดการใช้งาน gzip สำหรับการรับส่งข้อมูล SSL
    # ดู: https://bugs.debian.org/773332
    #
    # อ่านข้อมูลเพิ่มเติมเกี่ยวกับ ssl_ciphers เพื่อให้แน่ใจว่ามีการกำหนดค่าที่ปลอดภัย
    # ดู: https://bugs.debian.org/765782
    #
    # ใบรับรองที่ลงนามด้วยตนเองที่สร้างขึ้นโดยแพ็คเกจ ssl-cert
    # ห้ามใช้ในเซิร์ฟเวอร์ที่ใช้งานจริง!
    #
    # รวมตัวอย่าง/snakeoil.conf;

    รูท /var/www/html/Nginx;

    # เพิ่ม index.php ในรายการหากคุณใช้ PHP
    ดัชนี index.html index.htm index.nginx-debian.html index.php ;

    ชื่อเซิร์ฟเวอร์ _;

    ที่ตั้ง / {
        # ความพยายามครั้งแรกในการให้บริการคำขอเป็นไฟล์ จากนั้น
        # เป็นไดเร็กทอรี จากนั้นถอยกลับไปแสดง 404
        try_files $uri $uri/ =404;
    }

    # ส่งสคริปต์ PHP ไปยังเซิร์ฟเวอร์ FastCGI (ใหม่)
    #
    ตำแหน่ง ~ \.php$ {
        รวมตัวอย่าง/fastcgi-php.conf;
        รวม /etc/nginx/conf.d/*.conf;
        fastcgi_pass ยูนิกซ์:/var/run/php/php7.4-fpm.sock;
    }

    # ส่งสคริปต์ PHP ไปยังเซิร์ฟเวอร์ FastCGI
    #
    #location ~ \.php$ {
    # รวมตัวอย่าง/fastcgi-php.conf;
    #
    # # ด้วย php-fpm (หรือซ็อกเก็ตยูนิกซ์อื่น ๆ ):
    # fastcgi_pass ยูนิกซ์:/run/php/php7.3-fpm.sock;
    # # ด้วย php-cgi (หรือซ็อกเก็ต tcp อื่น ๆ ):
    # # fastcgi_pass 127.0.0.1:9000;
    #}

    # ปฏิเสธการเข้าถึงไฟล์ .htaccess ถ้ารูทเอกสารของ Apache
    # เห็นด้วยกับของ nginx
    #
    #location ~ /\.ht {
    #ปฏิเสธทั้งหมด
    #}
}


# การกำหนดค่าโฮสต์เสมือนสำหรับ example.com
#
# คุณสามารถย้ายไปยังไฟล์อื่นภายใต้ไซต์ที่มีจำหน่าย/ และ symlink ที่
# เพื่อเปิดใช้งานไซต์ / เพื่อเปิดใช้งาน
#
#เซิร์ฟเวอร์ {
# ฟัง 80;
# ฟัง [::]:80;
#
# server_name example.com;
#
# ราก /var/www/example.com;
# ดัชนี index.html;
#
#   ที่ตั้ง / {
# try_files $uri $uri/ =404;
# }
#}

# ไฟล์การกำหนดค่า /etc/nginx/snippets/fastcgi-php.conf:
# regex เพื่อแบ่ง $uri เป็น $fastcgi_script_name และ $fastcgi_path
fastcgi_split_path_info ^(.+?\.php)(/.*)$;

# ตรวจสอบว่ามีสคริปต์ PHP อยู่ก่อนที่จะส่งต่อ
try_files $fastcgi_script_name =404;

# ข้ามความจริงที่ว่า try_files รีเซ็ต $fastcgi_path_info
# ดู: http://trac.nginx.org/nginx/ticket/321
ตั้ง $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;

fastcgi_index index.php;
รวมถึง fastcgi.conf;

# ไฟล์กำหนดค่า /etc/nginx/fastcgi.conf:

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;

fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REQUEST_SCHEME โครงการ $;
fastcgi_param HTTPS $https if_not_empty;

fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;

fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;

# PHP เท่านั้น จำเป็นหากสร้าง PHP ด้วย --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;

# ไฟล์กำหนดค่า /etc/nginx/sites-enabled/kcanalytics:
เซิร์ฟเวอร์ {
    ชื่อเซิร์ฟเวอร์ xx.xxx.xxx.xxx;
    ฟัง 8070;
    ฟัง [::]:8070 ipv6only=เปิด;
    รูท /home/mysite_1/www/kc-site/Open-Web-Analytics;
    ดัชนี index.php index.html index.htm;
    ที่ตั้ง / {
        try_files $uri $uri/ =404;
    }
    ตำแหน่ง ~ \.php$ {
        รวมตัวอย่าง/fastcgi-php.conf;
        รวม /etc/nginx/conf.d/*.conf;
        fastcgi_pass ยูนิกซ์:/var/run/php/php7.4-fpm.sock;
    }
    error_log /var/log/nginx/kcanalyticslog/kcanalytics-error.log;
    access_log /var/log/nginx/kcanalyticslog/kcanalytics-access.log;
}

# ไฟล์กำหนดค่า /etc/nginx/sites-enabled/kcclient:
เซิร์ฟเวอร์ {
    ชื่อเซิร์ฟเวอร์ xx.xxx.xxx.xxx;
    ฟัง 8080;
    ฟัง [::]:8080 ipv6only=เปิด;
    รูท /var/www/html/Nginx;
    ดัชนี index.nginx-debian.html;

    ที่ตั้ง / {
    proxy_pass http://localhost:3000;
    proxy_http_version 1.1;
    proxy_set_header อัพเกรด $http_upgrade;
    proxy_set_header การเชื่อมต่อ 'อัปเกรด';
    proxy_set_header โฮสต์ $host;
    proxy_cache_bypass $http_upgrade;
    }
}

# ไฟล์การกำหนดค่า /etc/nginx/sites-enabled/phrases-api.mysite_2:
เซิร์ฟเวอร์ {
    ชื่อเซิร์ฟเวอร์ xx.xxx.xxx.xxx;
    ฟัง 4030;
    ฟัง [::]:4030 ipv6only=เปิด;
    error_log /home/mysite_2/.local/share/virtualenvs/api-dAF0CRIW/var/log/gunicorn-error.log;
    access_log /home/mysite_2/.local/share/virtualenvs/api-dAF0CRIW/var/log/gunicorn-access.log;

    # add_header 'การควบคุมการเข้าถึง - อนุญาต - ต้นทาง' '*';
    # add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
    # add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';

    สถานที่ = /favicon.ico { access_log off; ปิด log_not_found; }
    ตำแหน่ง / คงที่ / {
        รูท /home/mysite_2/www/translator-app-python/api/translator_rest_api;
    }
        สถานที่ /สื่อ/ {
        รูท /home/mysite_2/www/translator-app-python/api/translator_rest_api;
    }

    ที่ตั้ง / {
        รวม proxy_params;
        proxy_pass http://unix:/home/mysite_2/.local/share/virtualenvs/api-dAF0CRIW/run/gunicorn.sock;
    }
}
Michael Hampton avatar
cz flag
ทำไมคุณถึงใช้หัวหน้างานบนโลกนี้?
djdomi avatar
za flag
โดยวิธีการ `ฟัง 8090; ฟัง [::]:8090 ipv6only=on;` บอกให้ฟังที่พอร์ตนั้น ทำไมไม่เปลี่ยนล่ะ
Score:0
ธง in

ดูเหมือนว่า nginx จะบ่นสำหรับที่อยู่ IPV6 เท่านั้น คุณต้องการ ipv6 เลยหรือไม่? หากคุณไม่ทำเช่นนั้น การลบบล็อกการฟังสำหรับ ipv6 จะทำให้ nginx เริ่มต้นได้อย่างถูกต้องบน ipv4 เท่านั้น หากคุณต้องการผู้ฟัง IPV6 ใน nginx คุณสามารถทำสิ่งต่อไปนี้ได้

ฟิวเซอร์ -k 8090/tcp

การดำเนินการนี้จะฆ่า PID ที่ถือพอร์ต 8090 ทำเช่นเดียวกันกับพอร์ตที่เหลือที่คุณต้องการ วิธีการที่รุนแรงกว่านั้นคือการฆ่า nginx อย่างสมบูรณ์ (หากเป็นพอร์ตที่เปิดอยู่)

pkill -f nginx & รอ $!
บริการ nginx เริ่มต้นใหม่
Paul avatar
us flag
ขอบคุณ คุณพูดถูก แต่ฉันจำเป็นต้องเก็บการตั้งค่า IP แบบนี้ไว้เพื่อควบคุมการเชื่อมโยง IPv4 และ IPv6 ด้วยการตั้งค่าต่อไปนี้ ฉันเรียกใช้ไคลเอนต์สองเครื่อง, API สามรายการ, Wordpress และ Php Analytics Site โดยไม่มีข้อขัดแย้ง ดังตัวอย่างหนึ่งใน API มี Apache2 HTTP Server เป็นพร็อกซี (ฟังพอร์ต 80) ซึ่งส่งต่อไปยัง Nginx ( ไม่ได้ถูกควบคุมโดย Supervisor ซึ่งจริงๆแล้วมันคือทางออก!) Gunicorn ถูกควบคุมโดย Supervisor

โพสต์คำตอบ

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