Welcome! Log In Create A New Profile

Advanced

nginx mit php7.4-fpm proxy_pass Aufgabe

Posted by itsolon 
nginx mit php7.4-fpm proxy_pass Aufgabe
June 21, 2020 06:41AM
Hi, ich versuche das Wort Problem für mich zu vermeiden obwohl es für mich in dieser Situation natürlich eins ist.
Für andere ist es sicher nur eine Aufgabe.

Also

ich habe php7.4-fpm mit nginx 1.19 installiert und kann erfolgreich den proxy-pass nutzen das sieht dann so aus:

server {
listen 192.168.7.20:443 ssl http2;
server_name myserver.com ;
root /home/public_html;
index index.php index.html index.htm;
access_log /var/log/nginx/domains/myserver.com.log combined;
access_log /var/log/nginx/domains/myserver.com.bytes bytes;
error_log /var/log/nginx/domains/myserver.com.error.log error;

ssl_certificate some cert
ssl_certificate_key some cert
ssl_stapling on;
ssl_stapling_verify on;


location / {

proxy_pass http://127.0.0.1;

}


Das soll so funktionieren

myserver.com -> local gehostetes verzeichnis mit php fastcgi_pass oder try files
myserver.com:8081 -> localhost:8081
soll auf den IoBroker gehen und da IOBroker intern mit 8081 und 8082 für das Vis arbeitet brauche ich die 8082 auch durchgereicht
myserver.com:8081 -> localhost:8082

im grunde läuft die pauschale proxy_pass regel auf localhost schon gut, jeden port den ich angebe wird local weitergeleitet,
ich hätte gerne noch eine regel für WENN kein port angegeben wird, denn da hab ich aktuell logischerweise bad gateway, da es localhost ohne port nicht gibt.

eine zwickmühle wo ich nicht rauskomme aktuell.
Re: nginx mit php7.4-fpm proxy_pass Aufgabe
July 28, 2020 12:28PM
Hallo,

das Vorhaben würde ich mit mehreren Config-Dateien lösen:

=> myserver.com:8081 -> localhost:8081

server {
listen 8081;
server_name myserver.com;

location / {
proxy_pass http://localhost:8081;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}
}


Der Port myserver.com:8081 kann nicht gleichzeitig auf Port localhost:8082 umgeleitet werden.
Man könnte allenfalls Port myserver.vom:8082 auf localhost:8082 umleiten:

server {
listen 8082;
server_name myserver.com;

location / {
proxy_pass http://localhost:8082;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}
}

Falls kein Port angegeben wurde, wird je nach Protokoll ein Standardport genommen:

http:// .... = Port 80
https:// ... = Port 443

Entsprechend dieser Informationen kann eine Regel definiert werden:

z.B. myserver.com:80 auf localhost:8081:

server {
listen 80;
server_name myserver.com;

location / {
proxy_pass http://localhost:8081;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}
}

Falls https eingesetzt wird, muss ein Zertifikat installiert werden. Hier kann Letsencrypt zum Einsatz kommen.

server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name myserver.com;
include /etc/nginx/header.conf;
ssl_certificate /etc/letsencrypt/live/myserver.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/myserver.com/privkey.pem; # managed by Certbot
ssl_trusted_certificate /etc/letsencrypt/live/myserver.com/chain.pem;
include /etc/nginx/ssl.conf;

location / {
proxy_pass http://localhost:8081;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}


}

Zusätzlich müssen noch die Dateien /etc/nginx/ssl.conf und /etc/nginx/header.conf angelegt werden:

/etc/nginx/header.conf

add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Feature-Policy "geolocation 'self'";
add_header Referrer-Policy "no-referrer" always;


/etc/nginx/ssl.conf
ssl_dhparam /etc/ssl/certs/dhparam.pem;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384';
ssl_ecdh_curve secp521r1:secp384r1:prime256v1;
ssl_prefer_server_ciphers on;
ssl_stapling off;
ssl_stapling_verify on;

Damit sollte es funktionieren.
Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 71
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready