Nouvelle page
Pré-requis
- Une machine pouvant faire le proxy avec au moins 4 coeurs, 4 Gb de Ram et une connexion de 500 Mbps
- Un Nom de domaine
Mise a jour des paquets
apt update -y
apt upgrade -y
Installation des dépendances de base
apt install sudo nload htop tcpdump curl zip unzip net-tools screen ipset -y
Installation de Nginx
apt install nginx -y
Upgrade de Nginx en version Beta
sudo echo "deb http://nginx.org/packages/mainline/debian/ bullseye nginx deb-src http://nginx.org/packages/mainline/debian/ bullseye nginx" > /etc/apt/sources.list.d/nginx.list
apt install gnupg
wget -qO - https://nginx.org/keys/nginx_signing.key | sudo apt-key add -
sudo apt update
sudo apt remove nginx-common -y
sudo apt install nginx
cd /etc/nginx && mkdir rproxy && cd rproxy && mkdir http http/available http/enabled stream stream/available stream/enabled
On vérifie la version de Nginx
nginx -v (résultat au dessus de 19)
Installation du certificat SSL avec Certbot
Installation de Certbot avec python3 pour Nginx
sudo apt install -y python3-certbot-nginx
Création du certificat SSL
certbot certonly --nginx -d proxy.johanpaam.fr
Configuration de Nginx et du Proxy
Se rendre dans /etc/nginx/sites-available
Crée le fichier se nomant "proxy-web.conf"
upstream backend {
server your.fivem.server.ip:30120;
}
proxy_cache_path /srv/cache levels=1:2 keys_zone=assets:48m max_size=20g inactive=2h;
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name proxy.johanpaam.fr;
# SSL is highly encouraged but optional. If not using SSL, comment the below and change the listen blocks above.
ssl_certificate /etc/letsencrypt/live/proxy.johanpaam.fr/cert.pem;
ssl_certificate_key /etc/letsencrypt/live/proxy.johanpaam.fr/privkey.pem;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass_request_headers on;
proxy_http_version 1.1;
proxy_pass http://backend;
}
# if you do not wish to use the caching proxy, remove the below block
location /files/ {
proxy_pass http://backend$request_uri;
add_header X-Cache-Status $upstream_cache_status;
proxy_cache_lock on;
proxy_cache assets;
proxy_cache_valid 1y;
proxy_cache_key $request_uri$is_args$args;
proxy_cache_revalidate on;
proxy_cache_min_uses 1;
}
}
Se rendre dans /etc/nginx
Crée le fichier se nomant "stream-proxy.conf"
stream {
upstream backend{
server ipdevotreserveurfivem:30120;
}
server {
listen 30120;
proxy_pass backend;
}
server {
listen 30120 udp reuseport;
proxy_pass backend;
}
}
Remplacement fichier Nginx.conf
Remplacer le continu du fichier nginx.conf par celui-ci
worker_rlimit_nofile 999999;
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
include /etc/nginx/stream-proxy.conf;
events {
worker_connections 999999;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
proxy_cache_path /srv/cache levels=1:2 keys_zone=assets:48m max_size=20g inactive=2h;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
Augmentation du ulimit (max open files)
Se rendre dans /etc/sysctl.conf
Ajouter a la fin du fichier cette ligne
fs.file-max = 999999
Faites cette commande pour mettre a jour avec la nouvelle configuration
sudo sysctl -p
Se rendre dans /etc/security/limits.conf
Ajouter ces lignes a la fin du fichier
* soft nofile 999999
* hard nofile 999999
www-data soft nofile 999999
www-data hard nofile 999999
root soft nofile 999999
root hard nofile 999999
Se rendre dans /etc/pam.d/common-session
Ajouter cette ligne
session required pam_limits.so
Se rendre dans /etc/default/nginx
Ajouter cette ligne
ulimit -n 9999
Config FXServer
sv_forceIndirectListing true
sv_listingHostOverride proxy.johanpaam.fr
sv_listingIpOverride "0.0.0.0"
sv_proxyIPRanges "0.0.0.0/32"
Si vous souhaitez utiliser plusieurs Proxy (minimum 8 pour que sa soit fonctionnel) remplacez sv_proxyIPPranges
par sv_proxyIPRanges
en mettant la liste de vos proxy après
A ajouter dans votre server.cfg
, ensuite redémarrez votre serveur
Redémarrez Nginx avec la commande service nginx restart
Votre serveur passe désormais par le proxy !
Utiliser plusieurs Proxys
Répéter l'installation sur plusieurs machines, pointer le domaine (exemple proxy.johanpaam.fr) vers chaque IPs
- Proxy.johanpaam.fr pointe sur 0.0.0.1 mais aussi sur 0.0.0.2, 0.0.0.3 etc
Config FXServer Multiples Proxys
sv_listingHostOverride proxy.johanpaam.fr
sv_listingIpOverride "proxy.johanpaam.fr"
sv_proxyIPPranges "0.0.0.0/32 0.0.0.1/32 0.0.0.2/32 0.0.0.4/32 0.0.0.5/32"