Nginx http重定向到https不起作用

时间:2017-09-20 06:39:21

标签: nginx graphite

我正在使用nginx反向代理来处理我的石墨网。 我的nginx.conf看起来有点像这个

server {
           listen 8081;
           server_name myserver.com;
           return 301 https://$host:5000$request_uri;
       }

 server {
       listen 5000 ssl;
       server_name myserver.com;

       location / {
           proxy_pass                 http://127.0.0.1:8080;
           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  $scheme;
           proxy_set_header           X-Forwarded-Server  $host;
           proxy_set_header           X-Forwarded-Host  $host;
           proxy_set_header           Host  $host;


           add_header 'Access-Control-Allow-Methods' 'GET, POST';
           add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type';
           add_header 'Access-Control-Allow-Credentials' 'true';

           # here comes the basic auth, after the options part
           auth_basic            'Restricted';
           auth_basic_user_file  path/to/.htpasswd;

       }

       ssl    on;
       ssl_certificate    path/to/crt;
       ssl_certificate_key    path/to/key;
   }

我开始在https://host:5000上使用我的网站,我希望将此网站的任何http请求重定向为https请求。截至目前,我发现它被重定向到http://host/

仅在登录和注销期间发生这种情况。

我看到很多例子,他们使用端口80来监听http流量,但我不能使用该端口,因为其他一些应用程序已经在使用它。

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

尝试使用server { listen 8081; server_name myserver.com; return 301 https://$server_name:5000$request_uri; } 代替return 301 https://myserver.com:5000$request_uri; ,例如:

error_page 497

您确实可以将您的域名直接放在重定向上,例如:

server {
  listen      8081 ssl;
  server_name your.site.tld;
  ssl         on;
  ...
  error_page  497 https://$host:5000$request_uri;
  ...
}

可能这不是你的情况,但由于你使用不同的端口可能值得检查497,这主要用于处理已经发送到HTTPS端口的普通HTTP请求:

INSERT INTO [dbo].[CustomerDetails] ([CustomerName], [FatherName], [Cnic], [ContactNo], [Address], [City], [StartDate], [EndDate],[SamanDesc], [Tola], [Masha], [Rati], [Location], [Amount], [Percentage], [Months], [Days], [Status]) 
VALUES (@CustomerName, @FatherName, @Cnic, @ContactNo, @Address, @City, @StartDate, @EndDate, @SamanDesc, @Tola, @Masha, @Rati, @Location, @Amount, @Percentage, @Months, @Days, @Status);

INSERT INTO [dbo].[PaymentHistory] ([RecordId], [DatePaid], [Amount], [AmountPaid], [Profit])
VALUES (@id, @StartDate, @Amount, 0, 0);

要详细了解AutoCompleteTextView,请查看date()中的“错误处理”部分