ฉันติดตั้งแอป 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;
}
}