Thanks Kane for your help, but the primary problem is something else.
After further analysis, I think what we need is this redirection rule on Discourse Nginx config:
server {
listen 80;
server_name www.example.org;
if ($http_x_forwarded_proto != "https") {
rewrite ^(.*)$ https://$server_name$REQUEST_URI permanent;
}
}
This is because if the User is on HTTPS url and tries to log in with Google OAuth, it works fine. So, our primary problem is only related to redirection of http to https domain always.
I tried adding the above rule to app.yml file inside after_web_config and rebuild. It, then shows the nginx welcome screen
Our app.yml file’s content
after_web_config:
- replace:
filename: /etc/nginx/nginx.conf
from: /sendfile.+on;/
to: |
server_names_hash_bucket_size 64;
sendfile on;
- replace:
filename: /etc/nginx/conf.d/discourse.conf
from: /server.+{/
to: |
server {
listen 80;
server_name www.truvisa.com;
if ($http_x_forwarded_proto != "https") {
rewrite ^(.*)$ https://$server_name$REQUEST_URI permanent;
}
}
server {
- file:
path: /etc/nginx/conf.d/discourse_redirect_1.conf
contents: |
server {
listen 80;
server_name truvisa.com;
return 301 https://www.truvisa.com$request_uri;
}
Can you help with right way of adding this http_x_forwarded_proto rule to discourse?
NOTE: Our discourse installation is still on HTTP server. The SSL certificate is only installed on load balancer server.