我的網站啟動并運行,但管理員 CSS 沒有加載,我不確定我做了什么服務器不同意,但現在整個網站都關閉了一條502 Bad Gateway訊息。
以下是一些關鍵檔案的內容
sudo nano /etc/systemd/system/gunicorn.socket檔案:
[Unit]
Description=gunicorn socket
[Socket]
ListenStream=/run/gunicorn.sock
[Install]
WantedBy=sockets.target
gunicorn.service檔案 ( sudo nano /etc/systemd/system/gunicorn.service)
[Unit]
Description=gunicorn daemon
Requires=gunicorn.socket
After=network.target
[Service]
User=eson
Group=www-data
WorkingDirectory=/home/eson/example
ExecStart=/home/eson/example/env/bin/gunicorn \
--access-logfile - \
--workers 3 \
--bind unix:/run/gunicorn.sock \
example.wsgi:application
[Install]
WantedBy=multi-user.target
這是 Nginx 所擁有的sudo nano /etc/nginx/sites-available/example:
server {
server_name www.example.com example.com;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/eson/example;
}
location /media/ {
root /home/eson/example;
}
location / {
include proxy_params;
proxy_pass http://unix:/run/gunicorn.sock;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = www.example.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
if ($host = example.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name www.example.com example.com;
return 404; # managed by Certbot
}
當我輸入sudo systemctl status gunicorn.socket時,我得到:
● gunicorn.socket - gunicorn socket
Loaded: loaded (/etc/systemd/system/gunicorn.socket; enabled; vendor preset: enabled)
Active: failed (Result: service-start-limit-hit) since Wed 2022-05-11 01:42:19 UTC; 2s ago
Triggers: ● gunicorn.service
Listen: /run/gunicorn.sock (Stream)
當我跑步時,file /run/gunicorn.sock我得到/run/gunicorn.sock: socket
Nginx 看起來不錯:
sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
但是,當我跑步時,sudo tail -30 /var/log/nginx/error.log我得到:
2022/05/11 15:26:47 [error] 739#739: *49 connect() to unix:/run/gunicorn.sock failed (111: Connection refused) while connecting to upstream, client: 192.241.219.87, server: www.example.com, request: "GET /owa/auth/x.js HTTP/1.1", upstream: "http://unix:/run/gunicorn.sock:/owa/auth/x.js", host: "128.199.2.252"
2022/05/11 15:29:47 [error] 739#739: *51 connect() to unix:/run/gunicorn.sock failed (111: Connection refused) while connecting to upstream, client: 192.241.212.218, server: www.example.com, request: "GET /ecp/Current/exporttool/microsoft.exchange.ediscovery.exporttool.application HTTP/1.1", upstream: "http://unix:/run/gunicorn.sock:/ecp/Current/exporttool/microsoft.exchange.ediscovery.exporttool.application", host: "128.199.2.252"
2022/05/11 15:30:50 [error] 739#739: *53 connect() to unix:/run/gunicorn.sock failed (111: Connection refused) while connecting to upstream, client: 192.241.221.172, server: www.example.com, request: "GET /owa/auth/logon.aspx HTTP/1.1", upstream: "http://unix:/run/gunicorn.sock:/owa/auth/logon.aspx", host: "128.199.2.252"
2022/05/11 15:49:48 [error] 739#739: *55 connect() to unix:/run/gunicorn.sock failed (111: Connection refused) while connecting to upstream, client: 72.143.229.153, server: www.example.com, request: "GET /admin/login/?next=/admin/ HTTP/1.1", upstream: "http://unix:/run/gunicorn.sock:/admin/login/?next=/admin/", host: "example.com"
2022/05/11 16:13:25 [crit] 739#739: *57 SSL_do_handshake() failed (SSL: error:14201044:SSL routines:tls_choose_sigalg:internal error) while SSL handshaking, client: 23.92.22.17, server: 0.0.0.0:443
2022/05/11 16:21:15 [crit] 739#739: *61 connect() to unix:/home/django/gunicorn.socket failed (2: No such file or directory) while connecting to upstream, client: 45.9.20.101, server: _, request: "GET /_ignition/execute-solution HTTP/1.1", upstream: "http://unix:/home/django/gunicorn.socket:/_ignition/execute-solution", host: "128.199.2.252:80"
我的防火墻允許以下應用程式:
sudo ufw app list
Available applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
Postfix
Postfix SMTPS
Postfix Submission
當我啟動并啟用 gunicorn 時, gunicorn 套接字狀態很好:
sudo systemctl status gunicorn.socket
● gunicorn.socket - gunicorn socket
Loaded: loaded (/etc/systemd/system/gunicorn.socket; enabled; vendor preset: enabled)
Active: active (listening) since Wed 2022-05-11 16:14:05 UTC; 11min ago
Triggers: ● gunicorn.service
Listen: /run/gunicorn.sock (Stream)
Tasks: 0 (limit: 2339)
Memory: 0B
CGroup: /system.slice/gunicorn.socket
但是,獨角獸狀態不是:
sudo systemctl status gunicorn
● gunicorn.service - gunicorn daemon
Loaded: loaded (/etc/systemd/system/gunicorn.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Wed 2022-05-11 14:01:54 UTC; 2h 23min ago
TriggeredBy: ● gunicorn.socket
Main PID: 1775 (code=exited, status=1/FAILURE)
我確實嘗試重新啟動一切:
sudo systemctl daemon-reload
sudo systemctl restart gunicorn
sudo systemctl enable gunicorn.socket
當我運行時sudo tail -F /var/log/nginx/error.log:
2022/05/11 15:07:00 [error] 739#739: *43 connect() to unix:/run/gunicorn.sock failed (111: Connection refused) while connecting to upstream, client: 137.226.113.44, server: www.example.com, request: "GET / HTTP/1.1", upstream: "http://unix:/run/gunicorn.sock:/", host: "www.example.com"
2022/05/11 15:07:29 [crit] 739#739: *45 connect() to unix:/home/django/gunicorn.socket failed (2: No such file or directory) while connecting to upstream, client: 92.255.85.190, server: _, request: "GET / HTTP/1.0", upstream: "http://unix:/home/django/gunicorn.socket:/"
2022/05/11 15:23:42 [crit] 739#739: *47 connect() to unix:/home/django/gunicorn.socket failed (2: No such file or directory) while connecting to upstream, client: 87.251.101.78, server: _, request: "GET / HTTP/1.1", upstream: "http://unix:/home/django/gunicorn.socket:/", host: "128.199.2.252:80"
2022/05/11 15:26:47 [error] 739#739: *49 connect() to unix:/run/gunicorn.sock failed (111: Connection refused) while connecting to upstream, client: 192.241.219.87, server: www.example.com, request: "GET /owa/auth/x.js HTTP/1.1", upstream: "http://unix:/run/gunicorn.sock:/owa/auth/x.js", host: "128.199.2.252"
2022/05/11 15:29:47 [error] 739#739: *51 connect() to unix:/run/gunicorn.sock failed (111: Connection refused) while connecting to upstream, client: 192.241.212.218, server: www.example.com, request: "GET /ecp/Current/exporttool/microsoft.exchange.ediscovery.exporttool.application HTTP/1.1", upstream: "http://unix:/run/gunicorn.sock:/ecp/Current/exporttool/microsoft.exchange.ediscovery.exporttool.application", host: "128.199.2.252"
2022/05/11 15:30:50 [error] 739#739: *53 connect() to unix:/run/gunicorn.sock failed (111: Connection refused) while connecting to upstream, client: 192.241.221.172, server: www.example.com, request: "GET /owa/auth/logon.aspx HTTP/1.1", upstream: "http://unix:/run/gunicorn.sock:/owa/auth/logon.aspx", host: "128.199.2.252"
2022/05/11 15:49:48 [error] 739#739: *55 connect() to unix:/run/gunicorn.sock failed (111: Connection refused) while connecting to upstream, client: 72.143.229.153, server: www.example.com, request: "GET /admin/login/?next=/admin/ HTTP/1.1", upstream: "http://unix:/run/gunicorn.sock:/admin/login/?next=/admin/", host: "example.com"
2022/05/11 16:13:25 [crit] 739#739: *57 SSL_do_handshake() failed (SSL: error:14201044:SSL routines:tls_choose_sigalg:internal error) while SSL handshaking, client: 23.92.22.17, server: 0.0.0.0:443
2022/05/11 16:21:15 [crit] 739#739: *61 connect() to unix:/home/django/gunicorn.socket failed (2: No such file or directory) while connecting to upstream, client: 45.9.20.101, server: _, request: "GET /_ignition/execute-solution HTTP/1.1", upstream: "http://unix:/home/django/gunicorn.socket:/_ignition/execute-solution", host: "128.199.2.252:80"
2022/05/11 16:44:28 [error] 739#739: *67 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 185.39.144.147, server: www.example.com, request: "GET / HTTP/1.1", upstream: "http://unix:/run/gunicorn.sock:/", host: "www.example.com"
數字海洋檔案建議
**connect() to unix:/run/gunicorn.sock failed (2: No such file or directory)**
This indicates that Nginx was unable to find the gunicorn.sock file at the given location. You should compare the proxy_pass location defined within /etc/nginx/sites-available/myproject file to the actual location of the gunicorn.sock file generated by the gunicorn.socket systemd unit. If you cannot find a gunicorn.sock file within the /run directory, it generally means that the systemd socket file was unable to create it. Go back to the section on checking for the Gunicorn socket file to step through the troubleshooting steps for Gunicorn.
所以我做了,它說運行file /run/gunicorn.sock,我得到/run/gunicorn.sock: socket,與他們的輸出相同。
另外,當我運行時:sudo journalctl -u gunicorn.socket
我明白了:
-- Logs begin at Tue 2022-02-22 09:51:29 UTC, end at Wed 2022-05-11 01:49:37 UTC. --
May 10 21:53:50 django-s-1vcpu-2gb-sfo3-01 systemd[1]: gunicorn.socket: Failed with result 'service-start-lim>
May 10 23:51:14 django-s-1vcpu-2gb-sfo3-01 systemd[1]: Listening on gunicorn socket.
May 10 23:52:17 django-s-1vcpu-2gb-sfo3-01 systemd[1]: gunicorn.socket: Failed with result 'service-start-lim>
May 11 01:18:28 django-s-1vcpu-2gb-sfo3-01 systemd[1]: Listening on gunicorn socket.
May 11 01:20:47 django-s-1vcpu-2gb-sfo3-01 systemd[1]: gunicorn.socket: Failed with result 'service-start-lim>
May 11 01:35:43 django-s-1vcpu-2gb-sfo3-01 systemd[1]: Listening on gunicorn socket.
May 11 01:36:19 django-s-1vcpu-2gb-sfo3-01 systemd[1]: gunicorn.socket: Failed with result 'service-start-lim>
May 11 01:40:16 django-s-1vcpu-2gb-sfo3-01 systemd[1]: Listening on gunicorn socket.
May 11 01:40:33 django-s-1vcpu-2gb-sfo3-01 systemd[1]: gunicorn.socket: Failed with result 'service-start-lim>
May 11 01:40:51 django-s-1vcpu-2gb-sfo3-01 systemd[1]: Listening on gunicorn socket.
May 11 01:42:19 django-s-1vcpu-2gb-sfo3-01 systemd[1]: gunicorn.socket: Failed with result 'service-start-lim>
lines 1-12/12 (END)
我確實運行了sudo journalctl -u gunicorn,我在那里發現了一個錯誤。這是回溯:
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: Traceback (most recent call last):
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: File "/home/eson/example/env/lib/python3.8/site-packages/gunicorn/arbiter.py", line 589, in spawn_worker
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: worker.init_process()
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: File "/home/eson/example/env/lib/python3.8/site-packages/gunicorn/workers/base.py", line 134, in init_process
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: self.load_wsgi()
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: File "/home/eson/example/env/lib/python3.8/site-packages/gunicorn/workers/base.py", line 146, in load_wsgi
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: self.wsgi = self.app.wsgi()
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: File "/home/eson/example/env/lib/python3.8/site-packages/gunicorn/app/base.py", line 67, in wsgi
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: self.callable = self.load()
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: File "/home/eson/example/env/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 58, in load
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: return self.load_wsgiapp()
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: File "/home/eson/example/env/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: return util.import_app(self.app_uri)
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: File "/home/eson/example/env/lib/python3.8/site-packages/gunicorn/util.py", line 359, in import_app
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: mod = importlib.import_module(module)
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: return _bootstrap._gcd_import(name[level:], package, level)
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: File "<frozen importlib._bootstrap>", line 991, in _find_and_load
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: File "<frozen importlib._bootstrap_external>", line 848, in exec_module
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: File "/home/eson/example/example/wsgi.py", line 16, in <module>
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: application = get_wsgi_application()
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: File "/home/eson/example/env/lib/python3.8/site-packages/django/core/wsgi.py", line 12, in get_wsgi_application
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: django.setup(set_prefix=False)
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: File "/home/eson/example/env/lib/python3.8/site-packages/django/__init__.py", line 24, in setup
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: apps.populate(settings.INSTALLED_APPS)
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: File "/home/eson/example/env/lib/python3.8/site-packages/django/apps/registry.py", line 91, in populate
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: app_config = AppConfig.create(entry)
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: File "/home/eson/example/env/lib/python3.8/site-packages/django/apps/config.py", line 224, in create
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: import_module(entry)
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: return _bootstrap._gcd_import(name[level:], package, level)
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: File "<frozen importlib._bootstrap>", line 991, in _find_and_load
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: File "<frozen importlib._bootstrap>", line 973, in _find_and_load_unlocked
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: ModuleNotFoundError: No module named 'corsheaders'
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4393]: [2022-05-11 16:50:35 0000] [4393] [INFO] Worker exiting (pid: 4393)
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4375]: Traceback (most recent call last):
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4375]: File "/home/eson/example/env/lib/python3.8/site-packages/gunicorn/arbiter.py", line 209, in run
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4375]: self.sleep()
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4375]: File "/home/eson/example/env/lib/python3.8/site-packages/gunicorn/arbiter.py", line 357, in sleep
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4375]: ready = select.select([self.PIPE[0]], [], [], 1.0)
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4375]: File "/home/eson/example/env/lib/python3.8/site-packages/gunicorn/arbiter.py", line 242, in handle_chld
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4375]: self.reap_workers()
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4375]: File "/home/eson/example/env/lib/python3.8/site-packages/gunicorn/arbiter.py", line 525, in reap_workers
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4375]: raise HaltServer(reason, self.WORKER_BOOT_ERROR)
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4375]: gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4375]: During handling of the above exception, another exception occurred:
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4375]: Traceback (most recent call last):
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4375]: File "/home/eson/example/env/bin/gunicorn", line 8, in <module>
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4375]: sys.exit(run())
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4375]: File "/home/eson/example/env/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 67, in run
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4375]: WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4375]: File "/home/eson/example/env/lib/python3.8/site-packages/gunicorn/app/base.py", line 231, in run
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4375]: super().run()
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4375]: File "/home/eson/example/env/lib/python3.8/site-packages/gunicorn/app/base.py", line 72, in run
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4375]: Arbiter(self).run()
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4375]: File "/home/eson/example/env/lib/python3.8/site-packages/gunicorn/arbiter.py", line 229, in run
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4375]: self.halt(reason=inst.reason, exit_status=inst.exit_status)
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4375]: File "/home/eson/example/env/lib/python3.8/site-packages/gunicorn/arbiter.py", line 342, in halt
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4375]: self.stop()
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4375]: File "/home/eson/example/env/lib/python3.8/site-packages/gunicorn/arbiter.py", line 393, in stop
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4375]: time.sleep(0.1)
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4375]: File "/home/eson/example/env/lib/python3.8/site-packages/gunicorn/arbiter.py", line 242, in handle_chld
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4375]: self.reap_workers()
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4375]: File "/home/eson/example/env/lib/python3.8/site-packages/gunicorn/arbiter.py", line 525, in reap_workers
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4375]: raise HaltServer(reason, self.WORKER_BOOT_ERROR)
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 gunicorn[4375]: gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 systemd[1]: gunicorn.service: Main process exited, code=exited, status=1/FAILURE
May 11 16:50:35 django-s-1vcpu-2gb-sfo3-01 systemd[1]: gunicorn.service: Failed with result 'exit-code'
我檢查了我的 settings.py 檔案中的 corsheader,它是:
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# 3rd party apps:
'corsheaders',
...
]
MIDDLEWARE = [
# 3rd party middleware
'debug_toolbar.middleware.DebugToolbarMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
...
]
CORS_ALLOWED_ORIGINS = [
"https://example.com",
"http://example.com",
"http://localhost:8000",
"http://localhost:3000",
"http://127.0.0.1:8000",
]
那么,我的問題是什么?是那個嗎
“Nginx 無法在給定位置找到 gunicorn.sock 檔案”
是corsheader的東西嗎?或者兩者兼而有之?以及,如何解決?在進行一些更改以修復管理頁面中的 css 問題之前,我確實有相同的代碼,并且它沒有抱怨 corseheader。感謝您閱讀這篇長長的日志和問題。我認為您需要查看全貌才能說出原因可能是什么。我非常感謝您的幫助,因為這使網站在我們的關鍵時刻處于關閉狀態。
編輯 1:
我還應該注意,當我運行時sudo nano /run/gunicorn.sock,檔案會打開并顯示以下訊息:
[ Error reading /run/gunicorn.sock: No such device or address ]
編輯2:
這篇 Stackover 流程??帖子幫助我進一步除錯了一些東西。運行命令
gunicorn --log-file=- <app_name>.wsgi:application
我發現python-dotenv在我的本地計算機上安裝了幾個包 () 包時,它沒有安裝在 droplet 上。.env安裝軟體包后,由于檔案未在 droplet 上設定,我仍然收到錯誤訊息。所以,基本上我現在的問題是是否可以跟蹤.env檔案,是否應該.env在液滴上創建一個單獨的檔案并將所有環境變數放在那里,或者是否有另一種方法可以在 digitalocean 液滴上設定環境變數(注意液滴是不同于他們的應用平臺)
uj5u.com熱心網友回復:
所以,我的問題,也可能是其他人的問題,是:
- 我沒有在我的虛擬環境中安裝我的所有軟體包(因此臭名昭著
502 bad gateway) - 我的環境變數沒有設定(所以,我得到了
500 Server Error)。我只是.env在服務器上創建了一個檔案并在那里復制了我所有的環境變數(不建議跟蹤.env檔案) - 我的遷移沒有遷移到我的生產資料庫。所以我必須要
python manage.py migrate
我可以通過在 settings.py 中設定來除錯問題,DEBUG = True并查看我在哪里得到錯誤以及這些編程錯誤的真正含義(例如,如果你得到一個AttributeError,這意味著你還沒有遷移一些遷移檔案)。哦,請確保您DEBUG = False 稍后轉動以避免暴露該站點。我希望這可以為某人節省 3 天的挖掘和除錯作業;)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/474907.html
上一篇:Nginx配置以在URI前綴下為Angular應用程式提供服務,其中檔案在與“index.html”相同的檔案夾中生成
下一篇:Nginx背后的Uvicorn
