nginx代理
Quando Webman deve fornire accesso diretto a Internet, si consiglia di aggiungere un proxy nginx davanti a Webman, il che ha i seguenti vantaggi.
- Le risorse statiche sono gestite da nginx, consentendo a Webman di concentrarsi sulla logica di business.
- Permette a più Webman di condividere le porte 80 e 443, distinguendo i diversi siti tramite nome di dominio, realizzando la distribuzione di più siti su un singolo server.
- È possibile realizzare la coesistenza tra php-fpm e architettura Webman.
- Il proxy nginx implementa ssl per https, rendendo il tutto più semplice ed efficiente.
- Permette di filtrare rigorosamente alcune richieste illegali da Internet.
Esempio di proxy nginx
upstream webman {
server 127.0.0.1:8787;
keepalive 10240;
}
server {
server_name nome_del_dominio_del_sito;
listen 80;
access_log off;
# Attenzione, qui deve necessariamente essere la directory public di Webman, non la directory radice di Webman
root /your/webman/public;
location ^~ / {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_http_version 1.1;
proxy_set_header Connection "";
if (!-e $request_filename){
proxy_pass http://webman;
}
}
# Rifiuta l'accesso a tutti i file che terminano con .php
location ~ \.php$ {
return 404;
}
# Consente l'accesso alla directory .well-known
location ~ ^/\.well-known/ {
allow all;
}
# Rifiuta l'accesso a tutti i file o directory che iniziano con .
location ~ /\. {
return 404;
}
}
In generale, i sviluppatori devono solo configurare server_name e root con i valori effettivi; gli altri campi non necessitano di configurazione.
Attenzione
È particolarmente importante che l'opzione root sia configurata sulla directory public di Webman; non impostarla direttamente sulla directory di Webman, altrimenti tutti i tuoi file potrebbero essere scaricati o accessibili da Internet, inclusi file sensibili come la configurazione del database.