nginx 怎么自动跳转到 https 而不允许 http 访问
方法一:
nginx的rewrite方法,应该是大家最容易想到的方法,将所有的http请求通过rewrite重写到https上即可。
配置
server {
listen 192.168.1.111:80;
server_name test.com;
rewrite ^(.*)$ https://$host$1 permanent;
}
方法二:
nginx的497状态码
error code 497
[html] view plain?
497 - normal request was sent to HTTPS
当此虚拟站点只允许https访问时,当用http访问时nginx会报出497错误码,利用error_page命令将497状态码的链接重定向到带https的这个域名上。
配置:
[html] view plain?
server {
listen 192.168.1.11:443; #ssl端口
listen 192.168.1.11:80; #用户习惯用http访问,加上80,后面通过497状态码让它自动跳到443端口
server_name test.com;
#为一个server{......}开启ssl支持
ssl on;
#指定PEM格式的证书文件
ssl_certificate /etc/nginx/test.pem;
#指定PEM格式的私钥文件
ssl_certificate_key /etc/nginx/test.key;
#让http请求重定向到https请求
error_page 497 https://$host$uri?$args;
}
方法三:
index.html刷新网页
思路:上述两种方法均会耗费服务器的资源,我们用curl访问百度试一下,可以看到百度很巧妙的利用meta的刷新作用。因此我们可以基于虚拟主机路径下也写一个index.html,内容就是http向https的跳转。
index.html
[html] view plain?
nginx虚拟主机配置:
[html] view plain?
server {
listen 192.168.1.11:80;
server_name test.com;
location / {
#index.html放在虚拟主机监听的根目录下
root /srv/www/http.test.com/;
}
#将404的页面重定向到https的首页
error_page 404 https://test.com/;
}
上述三种方法均可以实现基于nginx强制将http请求跳转到https请求,大家可以评价一下优劣或者根据实际需求进行选择。
易维信-EVTrust可以申请SSL证书并提供相关所有技术支持。
需要部署SSL证书,然后在nginx配置
如果需要整站跳转,则在网站的配置文件的标签内,键入以下内容:
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R]
复制代码
如果对某个目录做https强制跳转,则复制以下代码:
RewriteEngine on
RewriteBase /yourfolder
RewriteCond %{SERVER_PORT} !^443$
#RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R]
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
复制代码
如果只需要对某个网页进行https跳转,可以使用redirect 301来做跳转!
redirect 301 /你的网页 https://你的主机+网页
更多版本请参考链接,https://bbs.wosign.com/thread-46-1-1.html
你是说80请求强制跳到https吧
使用nginx的rewrite
server {
listen 192.168.1.111:80;
server_name test.com;
rewrite ^(.*)$ https://$host$1 permanent;
}
戢景奥佛: 应该是将用户通过HTTP访问网站的请求,重新定位到HTTPS请求上.首先,要将网站配置成HTTP和HTTPS都可以访问的模式,确保80和443端口全部打开,然后在那些必须通过https访问的页面的头部加入一个判断语句,逻辑如下:If 用户是通...
南芬区19661961860: nginx 怎么配置https桩 - ?
戢景奥佛: 一、淘宝Gworg获取SSL证书,准备好域名,服务器环境办理nginx证书.二、Nginx安装SSL证书:https://www.gworg.com/ssl/107.html 三、Nginx 自动跳转到HTTPS:https://www.gworg.com/ssl/167.html
南芬区19661961860: 如何开启nginx 的https服务 - ?
戢景奥佛: Nginx安装SSL证书:https://www.gworg.com/ssl/107.html Nginx 自动跳转到HTTPS:https://www.gworg.com/ssl/167.html
南芬区19661961860: nginx指向https怎么配置 - ?
戢景奥佛: HTTPS,您需要先淘一个HTTPS证书(正规合法的)并且按照以下教程操作: Nginx安装SSL证书:https://www.gworg.com/ssl/107.html Nginx 自动跳转到HTTPS:https://www.gworg.com/ssl/167.html
南芬区19661961860: ubuntu系统的nginx怎么开启ssl - ?
戢景奥佛: 一、首先办理SSL证书,并且确定需要的域名:网页链接 二、Nginx安装SSL证书:网页链接 三、Nginx 自动跳转到HTTPS:网页链接
南芬区19661961860: nginx https 自动跳转成http 怎么解决 - ?
戢景奥佛: 您关闭301跳转,HTTPS自然就无法访问,如果您要HTTPS跳转HTTP,这个是不正确的行为,如果设置会导致搜索引擎蜘蛛混乱,无法确定实际网站,目前搜索引擎301只能爬HTTP跳转HTTPS.
南芬区19661961860: nginx怎么配置tomcat反向代理 - ?
戢景奥佛: 1. 前期准备nginx 安装成功tomcat 安装成功2. 更改nginx的配置文件更改nginx.conf文件,在http/server/location层次结构下,添加proxy_pass http://localhost:7080; 一句话即可.注意不要放了;结尾.3. 重启nginx,在浏览器中输入nginx的...
南芬区19661961860: 怎么让http自动跳转https - ?
戢景奥佛: Apache, IIS,Tomcat,Nginx设置http跳转到https方法https://zhidao.baidu.com/question/180668258310171084.html
南芬区19661961860: nginx设置端口后又自动跳转回80 - ?
戢景奥佛: 有2种可能性.1.DNS缓存造成.2.服务器端缓存,1小时后才能恢复正常.第2种情况最有可能,因为开启了RPCBind服务.解决方法是,将RPCBind的缓存清空.