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.