Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    DNS, nginx Konfiguration

    Scheduled Pinned Locked Moved Deutsch
    5 Posts 4 Posters 662 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • U
      unique24
      last edited by

      Hallo,

      ich bin mir nicht sicher ob es die pfSense betrifft, aber vielleicht gibt es hier versierte Leute:
      Ich habe einen Linuxserver, wo eine Webapplikation auf Port 8069 läuft. Es ist das Warenwirtschaftsprogramm odoo

      Nun möchte ich intern im Lan via odoo/ darauf im Browser zugreifen. Das klappt. ganzer Hostname: odoo.mycompany.mylocal

      Aber ich habe eine Portweiterleitung eingerichtet, damit man extern auch darauf zugreifen kann. HIerfür habe ich eine öffentliche DNS (portal.mycompany.com)die auf meine öffentliche IP zeigt. Port 80 wird in der pfSense auf den Webserver weiter geleitet.

      Mein Problem:
      Rufe ich extern via "http://portal.mycompany.com" auf, wird weiterleitet an "odoo/" .. und da dies der interne hostname ist, klappt das natürlich nicht.

      Nun bin ich mir nicht sicher ob nginx das Problem oder pfSense ist:

      Die Details:
      hostname des servers: odoo
      Ip wird über DHCP bezogen, die ich statisch in der pfSense hinterlegt habe: 192.168.0.202
      pfSense: hier habe ich eine Host Überschreibung erstellt: portal => mycompany.com zeigt auf 192.168.0.202

      nano /etc/nginx/conf.d/odoo.conf

      #worker_processes  1;
      
      #events {
      #    worker_connections  1024;
      #}
      
              upstream odoo {
                      server portal.mycompany.com:8069 weight=1 fail_timeout=0;
              }
      
              upstream odoo-im {
                      server portal.mycompany.com:8072 weight=1 fail_timeout=0;
              }
      
      
      
              server {
              listen  80;
              server_name portal.mycompany.com;
      
              location /socket.io {
      #               proxy_buffer_size 128k;
                      proxy_send_timeout 600s;
                      proxy_read_timeout 600s;
                      proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
      
                      proxy_pass   http://127.0.0.1:8068;
                      proxy_http_version 1.1;
                      proxy_set_header Upgrade $http_upgrade;
                      proxy_set_header Connection "upgrade";
                      proxy_set_header Host $host;
      
                      proxy_set_header X-Real-IP $remote_addr;
                      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                      proxy_set_header X-Forwarded-Proto https;
                      proxy_redirect off;
              }
      
              location / {
                      proxy_redirect off;
                      proxy_pass http://odoo;
              }
      
              location /longpolling {
                      proxy_pass http://odoo-im;
              }
      
              location /web/static/ {
                      proxy_cache_valid 200 60m;
                      proxy_buffering on;
                      expires 864000;
                      proxy_pass http://odoo;
              }
       }
      
      

      Hat jemand eine Idee wo der Fehler liegt?

      Danke!

      1 Reply Last reply Reply Quote 0
      • V
        viragomann
        last edited by viragomann

        Hallo,

        die pfSense ist nicht das Problem, die kann für deine (eigenwillige) Konfiguration nix. Sie kann dir aber helfen, es zu lösen.

        Du hast also eine Portweiterleitung von der WAN IP Port 80 auf die interne IP des Server Port 8069. Du musst den internen Clients eben dasselbe bieten.
        Am einfachsten löst du das mit NAT Reflection. Öffne dazu die NAT-Regel für die Weiterleitung, da gibt es unten die Option "NAT Reflection", wähle hier "NAT + Proxy" aus.
        Dann sollte die Sache auch von intern einwandfrei klappen.

        Allerdings sieht es dann am Webserver so aus, als ob die interenen Zugriffe von der pfSense selbst kommen würden. Du siehst also nicht die tatsächliche Quell-IP.
        Einzige Alternative ist nur, den Webserver von intern über den tatsächlichen Port anzusprechen.

        Grüße

        1 Reply Last reply Reply Quote 0
        • m0njiM
          m0nji
          last edited by

          Nee ich denke die pfSense ist hier komplett außen vor bei dem Problem. Die NAT Reflection macht in diesem Fall der NGINX Proxy. Dieser gibt dir auf Port 80 die Inhalte vom Port 8069. Deswegen ist es auch korrekt wenn Man nur eine NAT Regel auf der pfSense von Port 80 (Internet) auf Port 80 (192.168.0.202) macht.

          Das Problem wird der proxy_pass/location Parameter in der nginx Konfiguration sein. Kenne mich aber zu wenig mit nginx aus. Bei Apache hat man das mittels reverse Proxy umgesetzt:

          Beispiel:

          <VirtualHost *:443>
          ProxyRequests Off
          ProxyPreserveHost On
          ProxyPass / https://10.xxx.yyy.100:9251/
          ProxyPassReverse / https://10.xxx.yyy.100:9251/
          ServerName selfservice.xxxxxxx.de
          CustomLog /var/log/apache2/access_selfservice.log combined
          ErrorLog /var/log/apache2/error_selfservie.log
          SSLProxyEngine On
          SSLEngine on
          
          SSLCertificateFile      /etc/apache2/ssl/startssl/selfservice.xxxxxxxxx.de/selfservice.xxxxxxxxx.de.crt
          SSLCertificateKeyFile   /etc/apache2/ssl/startssl/selfservice.xxxxxxxxx.de/privkey.key
          SSLCertificateChainFile /etc/apache2/ssl/startssl/selfservice.xxxxxxxxx.de/sub.class1.server.ca.pem
          
          
          <Location />
              HostnameLookups On
              HostnameLookups Double
              Order deny,allow
              Deny from all
              Allow from 127.0.0.1
              Allow from 194.yyy.xxx.yyy
              </Location>
          
          #### Check deaktivieren so lange Zertifikat nicht zu Hostnamen passt ####
          SSLProxyVerify none
          SSLProxyCheckPeerCN off
          SSLProxyCheckPeerName off
          SSLProxyCheckPeerExpire off
          #### Check deaktivieren so lange Zertifikat nicht zu Hostnamen passt ####
          
          </VirtualHost>
          

          Intel i3-N305 / 4 x 2.5Gbe LAN @2.7.2-Release
          WAN: Vodafone 1000/50, Telekom 250/40; Switch: USW Enterprise 8 PoE, USW Flex XG, US-8-60W; Wifi: Unifi 6 Lite AP, U6 Mesh

          1 Reply Last reply Reply Quote 0
          • U
            unique24
            last edited by

            Hallo,

            ich habe es nun so gelöst, das alles in der nginx config, was "http://odoo" war auf "http://portal.mycompany.com" abgeändert habe.

            Nun wird alles auf portal.mycolmpany.com umgeleitet und die pfsense löst dies intern eh auf die interne IP auf.
            Scheint zu klappen!

            1 Reply Last reply Reply Quote 0
            • JeGrJ
              JeGr LAYER 8 Moderator
              last edited by

              @unique24 said in DNS, nginx Konfiguration:

              Scheint zu klappen!

              OK das ist doch mal was :)
              ABER: Externe Erreichbarkeit von einer Warenwirtschaft via Port 80? Das solltet ihr nochmal überlegen. Das kann doch bitte nicht euer ernst sein ;)

              Don't forget to upvote 👍 those who kindly offered their time and brainpower to help you!

              If you're interested, I'm available to discuss details of German-speaking paid support (for companies) if needed.

              1 Reply Last reply Reply Quote 0
              • First post
                Last post
              Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.