-
Notifications
You must be signed in to change notification settings - Fork 2
Hosting
О том, как настроить сам игровой сервер, расскажет README проекта. В этой статье описывается то, как сейчас работает сайт и веб-клиент.
Основные компоненты:
- SSL-сертификат, выданный с помощью letsencrypt
- nginx-сервер, с конфигурацией в /etc/nginx
- cайт на Django CMS, запускаемый с помощью gunicorn
- веб-клиент
- прокси между telnet и websocket, websockify
При настройке с нуля надо сперва установить nginx:
sudo apt-get install nginxДефаултную конфигурацию (/etc/nginx/sites-available/default) менять не придется и после установки сертификата она будет выглядеть так:
server {
listen 80;
listen [::]:80;
return 301 https://$host$request_uri;
}
server {
listen [::]:443 ssl default_server;
listen 443 ssl default_server;
ssl_certificate /etc/letsencrypt/live/planescape.su/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/planescape.su/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
return 444;
}
Конфигурацию для Django CMS и websockify необходимо создать в файле /etc/nginx/sites-available/planescape.su) и прилинковать из каталога /etc/nginx/sites-enabled. Итоговый файл после установки сертификата:
upstream websockify {
server 127.0.0.1:4321;
}
server {
server_name planescape.su;
root /var/www/planescape.su;
index index.html;
listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/planescape.su/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/planescape.su/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
location /static/ {
root /home/django/planescape/;
expires 30d;
}
location /media/ {
root /home/django/planescape/;
expires 30d;
}
location /robots.txt {
alias /home/django/planescape/robots.txt;
}
location /mudjs/ {
root /var/www/planescape.su/;
}
location /mudjs-ws {
proxy_pass http://websockify;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_read_timeout 86400;
proxy_send_timeout 86400;
}
location / {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_connect_timeout 10;
proxy_read_timeout 10;
proxy_pass http://localhost:8000/;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https; # <-
}
}
server {
if ($host = planescape.su) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
listen [::]:80;
server_name planescape.su;
return 404; # managed by Certbot
}
Для установки certbot с нуля понадобится инструкция с официального сайта.
Чтобы получить новый сертификат и отредактировать конфигурацию nginx:
sudo certbot --nginx
Для добавления нового домена в существующий сертификат:
sudo certbot certonly --nginx --cert-name planescape.su -d planescape.su,ps.virtustan.tk
Веб-клиент для Граней Мира является форком клиента mudjs.