Участник
Пользователь
- Сообщения
- 367
- Реакции
- 47
- Помог
- 6 раз(а)
Elite-Troops,
Попробуй так
server {
listen 80;
server_name айпи вдс;
location / { root /usr/share/nginx/html; index index.html index.htm; }
location /fastdl/ { alias /путь/до/сервера/cstrike/;
autoindex on;
location ~* (\.wad$|(maps|sprites|models|gfx|sound|media|overviews)/.*(bsp|mdl|spr|wav|mp3|bmp|tga|txt|res)$) { allow all; } deny all; }
}
Как настроить этот параметр? Нужно первый сервер к первому ядру, второй ко второму
- executable - название исполняемого файла скрипта. Не рекомендую трогать само название, но сюда можно приписать параметры запуска процесса сервера, например привязку к определённому ядру процессора.
они уже установлены, пишетmcrypt is already the newest version (2.6.8-4).
php-mbstring is already the newest version (2:7.3+69).
Вдруг кому-то захочется дебажить параметр location у NGINX (настройку FastDL):Теперь перейдён к конфигурации Nginx под сервер быстрой загрузки.
Такой проблемы нет при использовании DepotDownloader, но если очень нужно именно с помощью SteamCMD выкачивать, то можно проверять размер папки, допустим так:При установке сервера кс 1.6 не выкачало файлы в папке valve и cstrike
#!/bin/bash
InstallApp() {
local appdir="$1"
local appid="$2"
local targetSize="$3"
while true; do
# Download app
echo -e "\033[1;43m > Start downloading app '${appid}' to dir '${appdir}'\033[0m"
${STEAMCMDDIR}/steamcmd.sh \
+force_install_dir "${appdir}" \
+login anonymous \
+app_update "${appid}" \
+quit
local currentSize=$(du -shm $appdir | cut -f1)
echo -e " > Current folder size: \033[1;40m${currentSize}MB\033[0m"
if ((currentSize >= targetSize)); then
echo -e "\033[1;42m > Application '${appid}' successfully installed to dir '${appdir}' with size: '${currentSize}MB'.\033[0m"
break
else
echo -e "\033[1;41m > Retrying download...\033[0m"
fi
done
}
InstallApp "${STEAMAPPDIR}" "${STEAMAPPID}" "500"
Понял вас. В таком случае вы можете использовать ACL (Access Control Lists), чтобы дополнительно управлять правами доступа к файлам и каталогам. Это позволит вам предоставить Nginx доступ к файлам, не изменяя владельца каталога.
1. Установите пакет `acl`, если он еще не установлен:
```bash
sudo apt-get install acl
```
2. Добавьте пользователя `www-data` (пользователь Nginx) в группу `public_server`:
```bash
sudo usermod -aG public_server www-data
```
3. Дайте права на чтение и выполнение каталогу и всем его подкаталогам для группы `public_server`:
```bash
sudo setfacl -R -m g:public_server:rx /home/public_server/serverfiles/cstrike/
```
4. Дайте права на чтение и выполнение только для каталога для группы `www-data`:
```bash
sudo setfacl -m g:www-data:rx /home/public_server/serverfiles/cstrike/
```
Теперь пользователь `www-data` (Nginx) имеет доступ к файлам в каталоге `/home/public_server/serverfiles/cstrike/`, а владелец остается `public_server`.
Ваша проблема связана с тем, что пользователь `www-data`, от имени которого запускается Nginx, не имеет доступа к директории `/home/public_server/serverfiles/cstrike/`, которая принадлежит пользователю `public_server`.
Вот несколько возможных решений:
1. **Измените владельца директории**: Вы можете изменить владельца директории на `www-data` с помощью команды `chown`. Но будьте осторожны, это может повлиять на другие процессы, которые также используют эту директорию.
```
sudo chown -R www-data:www-data /home/public_server/serverfiles/cstrike/
```
2. **Добавьте пользователя `www-data` в группу `public_server`**: Это позволит пользователю `www-data` получить доступ к файлам, которые принадлежат группе `public_server`.
```
sudo usermod -a -G public_server www-data
```
Затем вы должны убедиться, что у группы есть разрешения на чтение и выполнение для этой директории.
```
sudo chmod -R 750 /home/public_server/serverfiles/cstrike/
```
3. **Используйте Access Control Lists (ACL)**: Это более гибкий способ управления правами доступа к файлам. Вы можете разрешить пользователю `www-data` доступ к директории следующим образом:
```
sudo setfacl -R -m u:www-data:rx /home/public_server/serverfiles/cstrike/
```
Пожалуйста, выберите подходящий вариант в зависимости от вашей ситуации. Если у вас возникнут проблемы или вопросы, не стесняйтесь задавать их. 😊
root@LGSM:~# usermod -a -G public_server www-data
root@LGSM:~# chmod -R 750 /home/public_server/serverfiles/cstrike/
root@LGSM:~# systemctl restart nginx