900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Linux上nginx配置SSL协议非80 443端口自动跳往https端口

Linux上nginx配置SSL协议非80 443端口自动跳往https端口

时间:2023-10-13 18:23:23

相关推荐

Linux上nginx配置SSL协议非80 443端口自动跳往https端口

在生产环境中往往碰到一个网站需要多个访问端口,而默认的http访问端口是80,https访问的端口是443,然而这是不够在生产环境下使用的,这个时候就需要配置更多的端口来弥补这一缺点。

默认情况下用户输入URL时是约简单越好,比如 ,用户只需要输入就可以访问。但是这样是通过http协议进行访问,而并非https进行访问。站在用户的角度来考虑问题他不会管你的网站是通过什么来访问的,他只管我的一些信息不被别人劫持到,这就要使用到https加密来进行访问。

比如我的nginx已经配置好了配置文件,如下图。

但是这种配置需要用户自动输入http还是https,这时我只需要添加一个配置就可以实现80端口自动跳转到443端口。

# 80端口自动转发到443端口server {listen 80;server_name ********.com;rewrite ^(.*)$ https://${server_name}$1 permanent;}server {listen 80;listen 443 ssl;……}

但是这样会牵扯到配置的其他非80端口,所以上面的配置在生产环境是行不通的

这些还是默认的端口,但如果要是其他端口呢?

比如:

server {listen 9116 ssl;server_name *********.com;ssl_certificate /data/nginx/cert/214376322580000.pem;ssl_certificate_key /data/nginx/cert/214376322580000.key;ssl_session_timeout 5m;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;ssl_prefer_server_ciphers on;charset UTF8;access_log logs/******.access.log main;error_log logs/*****.error.log;location / {proxy_pass https://***;}}

重新检查nginx配置没有任何的报错。用浏览器访问时就会出来一个报错“The plain HTTP request was sent to HTTPS port”。

那么这时我就需要对配置文件进行更改。

首先注释掉80端口自动转发到443端口。

# 80端口自动转发到443端口#server {# listen 80;# server_name ******.com;# rewrite ^(.*)$ https://${server_name}$1 permanent;#}

然后在server配置里面添加一句**‘error_page 497 301 https://$http_host$request_uri;’ **

server {listen 9116 ssl;server_name ******.com;ssl_certificate /data/nginx/cert/214376322580000.pem;ssl_certificate_key /data/nginx/cert/214376322580000.key;ssl_session_timeout 5m;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;ssl_prefer_server_ciphers on;error_page 497 301 https://$http_host$request_uri;charset UTF8;access_log logs/******.access.log main;error_log logs/********.error.log;location / {proxy_pass https://****;}}

这样就可以实现http自动跳转到https了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。