У меня есть vps
сервер и domain
Nginx
/ etc / nginx / sites-available / myproject и / etc /nginx / sites-enabled / myproject
server {
listen 80;
server_name example.com;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/myproject;
}
location / {
include proxy_params;
proxy_pass http://unix:/run/gunicorn.sock;
}
}
/ etc / nginx / nginx.conf
...
http {
...
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*.*;
}
nginx -t
- successful
systemctl status nginx
- active
ufw status
Status: active
To Action From
-- ------ ----
8000 ALLOW Anywhere
80 ALLOW Anywhere
443 ALLOW Anywhere
8000 (v6) ALLOW Anywhere (v6)
80 (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
Когда я открываю ip из vps-server
в браузере, я получаю домашняя страница nginx
.
gunicorn
/ etc / systemd / system / gunicorn.service
[Unit]
Description=gunicorn daemon
Requires=gunicorn.socket
After=network.target
[Service]
User=root
Group=root
WorkingDirectory=/home/myproject
ExecStart=/home/myproject/myprojectenv/bin/gunicorn \
--access-logfile - \
--workers 3 \
--bind unix:/run/gunicorn.sock \
myproject.wsgi:application
[Install]
WantedBy=multi-user.target
/ etc / nginx / sites-enabled # cat /etc/systemd/system/gunicorn.socket
[Unit]
Description=gunicorn socket
[Socket]
ListenStream=/run/gunicorn.sock
[Install]
WantedBy=sockets.target
systemctl status gunicorn
- active
gunicorn --bind 0.0.0.0:8000 myproject.wsgi
- работает
/run/gunicorn.sock
- существует
Джанго
/ home / myproject / myproject / .settings.py
ALLOWED_HOSTS = ['example.com', 'localhost']
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'test_db',
'USER': 'test_user',
'PASSWORD': 'test',
'HOST': 'localhost',
'PORT': '',
}
}
Я запускаю manage.py runserver example.com:8000
и получаю ответ от Django
, что сервер запущен на example.com:8000
.
Я открыт веб-сайт по url http://example.com:8000
Как открыть веб-сайт по URL http://example.com
(без port
)