Как настроить nginx как proxy_pass? - PullRequest
1 голос
/ 08 июня 2019

Я использую Certbot Nginx для установки моего nginx в Ubuntu 18.04.Я также использую Certbot для получения сертификата LetsEncrypt.

Я использую базовую конфигурацию, такую ​​как tcp 80 и 433, чтобы получить как http, так и https.Большая часть настроек выполнена Certbot.

Мой домен http://example.com и предоставляет статическую страницу.Но у меня также есть папка, и я могу вызвать ее с помощью http://example.com/myfolder.

. После установки nginx я пытаюсь использовать proxy_pass и https для своих локальных служб rest_api.

Если я печатаю http://127.0.0.1:1024/myfolder тогда я смогу увидеть мои rest-api работы.Если я наберу https://example.com/myfolder, то nginx не активируется proxy_pass.mystic.com зарегистрировался и работает более 8 месяцев.Вся конфигурация днс работает.Также работает nginx letsencrypt.1 неделю назад мой сертификат автоматически обновлялся (каждые 90 дней).

Моя конфигурация Nginx приведена ниже.моя nginx версия 1.15.10.

  1. Как настроить nginx как proxy_pass?
  2. Правильно ли мой proxy_pass?
  3. как я могу изменить эту строкуtry_files $uri $uri/ =404; чтобы показать var/www/html/index.html?
    server {
        charset UTF-8;
        listen 80 ;
        listen [::]:80 ;

        server_name example.com; # managed by Certbot    

        if ($host = example.com) {
            return 301 https://$host$request_uri;
        } # managed by Certbot
        return 404; # managed by Certbot
    }

    server {
        charset UTF-8;
        listen [::]:443 ssl ipv6only=on; # managed by Certbot
        listen 443 ssl; # managed by Certbot
        server_name example.com; # managed by Certbot

        ssl_certificate /mypath/example.com/fullchain.pem; # managed by Certbot
        ssl_certificate_key /mypath/example.com/privkey.pem; # managed by Certbot
        include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

        location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
            try_files $uri $uri/ =404;
            proxy_pass http://127.0.0.1:1024/;
       }
    }

1 Ответ

3 голосов
/ 08 июня 2019

Попробуйте изменить базовую конфигурацию Nginx следующим образом, а затем установите сертификат LetsEncrypt из certbot:

server {
    listen 80;
    server_name example.com;
    location / {
        proxy_set_header   X-Forwarded-For $remote_addr;
        proxy_set_header   Host $http_host;
        proxy_pass         "http://127.0.0.1:1024";

    }
   location /admin {
        proxy_set_header   X-Forwarded-For $remote_addr;
        proxy_set_header   Host $http_host;
        proxy_pass         "http://192.168.2.1:8080";

    }
   location /user {
        proxy_set_header   X-Forwarded-For $remote_addr;
        proxy_set_header   Host $http_host;
        proxy_pass         "http://192.168.2.1:1024";

    }
}

У меня это отлично работает с certbot. Не забудьте перезагрузить службу nginx перед тестированием конфигурации.

...