The syntax is as follows. You need to add the following in location or server directives:
if ($host ~* ^(example\.com|www\.example\.com)$ ){
rewrite ^/(.*)$ https://example.com/$1 permanent;
}
OR better use the following rewrite:
rewrite ^ https://$server_name$request_uri? permanent;
Edit nginx.conf, enter:
# vi nginx.conf
You need to define both http and https server as follows:
## our http server at port 80 server { listen 1.2.3.4:80 default; server_name example.com www.example.com; ## redirect http to https ## rewrite ^ https://$server_name$request_uri? permanent; } ## Our https server at port 443. You need to provide ssl config here### server { access_log logs/example.com/ssl_access.log main; error_log logs/example.com/ssl_error.log; index index.html; root /usr/local/nginx/html; ## start ssl config ## listen 1.2.3.4:443 ssl; server_name example.com www.example.com; ## redirect www to nowww if ($host = 'www.example.com' ) { rewrite ^/(.*)$ https://example.com/$1 permanent; } ### ssl config - customize as per your setup ### ssl_certificate ssl/example.com/example.com_combined.crt; ssl_certificate_key ssl/example.com/example.com.key_without_password; ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers RC4:HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; keepalive_timeout 70; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; ## PROXY backend location / { add_header Front-End-Https on; add_header Cache-Control "public, must-revalidate"; add_header Strict-Transport-Security "max-age=2592000; includeSubdomains"; proxy_pass http://exampleproxy; proxy_next_upstream error timeout invalid_header http_500 http_502 http_503; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }Save and close the file. Reload or restart the nginx:
# nginx -s reload
Test it:
$ curl -I http://example.com
$ curl -I http://example.com/foo/bar/file.html
Sample outputs:
HTTP/1.1 301 Moved Permanently Server: nginx Date: Sat, 01 Dec 2012 23:49:52 GMT Content-Type: text/html Content-Length: 178 Connection: keep-alive Location: https://example.com/
No comments:
Post a Comment