簡體   English   中英

如何將nginx配置為proxy_pass?

[英]How to configure nginx as proxy_pass?

我使用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個月。 所有dns配置都正常。 另外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/;
       }
    }

嘗試更改這樣的基本Nginx配置,然后從certbot安裝LetsEncrypt證書:

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服務。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM