时间:2023-02-10 13:03:01 | 来源:建站知识
时间:2023-02-10 13:03:01 来源:建站知识
话不多说,先贴部分配置:server { listen 80; server_name www.your-domain.com; rewrite ^(.*)$ https://www.your-domain.com$1 permanent;}server { listen 443 ssl; server_name www.your-domain.com; ssl_certificate /home/ssl_certificate/your-domain.com.pem; ssl_certificate_key /home/ssl_certificate/your-domain.com.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_session_timeout 5m; if ( $host != 'www.your-domain.com' ) { rewrite ^(.*)$ https://www.your-domain.com$1 permanent; } root /var/www/html; index index.html index.htm index.nginx-debian.html; # server_name _; location / { proxy_pass http://127.0.0.1:8080; }}
https
配置server { # 我们都知道(我们都应该知道),443是 https 的默认端口 listen 443 ssl; server_name www.your-domain.com; # 你要有证书,才能 https,免费申请一个吧,七牛云,阿里云都有免费一年的证书 ssl_certificate /home/ssl_certificate/your-domain.com.pem; ssl_certificate_key /home/ssl_certificate/your-domain.com.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_session_timeout 5m; # 下面这句就是当识别到 HOST 不是带 www 的全部都 301 带上 www if ( $host != 'www.your-domain.com' ) { rewrite ^(.*)$ https://www.your-domain.com$1 permanent; } root /var/www/html; index index.html index.htm index.nginx-debian.html; # server_name _; location / { # 我是 java web 所以用了 Tomcat ,但是我要用 nginx 做转发,因此有了如下的配置 proxy_pass http://127.0.0.1:8080; }}
http
强制为https
访问 80
与 443
端口分别配置一个 server
,让80
端口访问的强制 301
跳转到 https
。如下所示:把所携带的参数都带上 rewrite ^(.*)$ https://www.your-domain.com$1 permanent;}
www
的访问强制加上www
nginx
的配置文件可以写这种判断和表达式,总之是很厉害的,仔细观察下面的 if
判断很容易明白讲的什么意思,当 HOST
不是带 www
的访问时 302 到 www
上面。 # 下面这句就是当识别到 HOST 不是带 www 的全部都 302 带上 www if ( $host != 'www.your-domain.com' ) { rewrite ^(.*)$ https://www.your-domain.com$1 permanent; }
需要注意的是:if ( $host != 'www.your-domain.com' ) {
这一句一定要按照格式书写,括号前后的空格必须带着,还有if
之后的空格也一样。如果不!会报错:
unknown directive "if($host!="
https
?其实说白了,不是因为大家都用,所以我们也用。举一个最简单的例子 https
能防止网络运营商给你的页面加东西,也能防止网络运营商窥探你的隐私。如果我们用 http
,网络运营商可以在你的页面加广告,可以把你的传输的网页进行过滤,比如说正则匹配过滤你的电话号码,邮箱,身份证号,等等个人信息。 再比如好多人用一些免费的科学上网工具,这些都是有风险的,你的数据流经过了第三方的服务器,那么他就有可能截留分析你的网页信息。www
跳转到 www
?有助于你的网站的SEO和排名,要不信你试一试一些必须要注重SEO优化的网站类型,比如新闻资讯站这一类的,都会强制加上www
。其实这个www
是个遗留问题,本来已经没啥用了,但是因为历史已成定局,规则已经定下来,大家没办法,只有遵守了。本质上加上www
和不加www
是两个网站,搜索引擎统计的话会按照两个域名来统计,而且发现爬这两个网站的内容都是一个样,这对你的SEO有致命问题,当然现在的话随着搜索引擎的进化可能已经不存在这类问题了,但是不能不在意这些问题。nginx
做为 Tomcat
的代理?一个是 nginx
性能好,而是可以做负载均衡,用户增长后可以快速部署多个 Tomcat
分担压力。 GZIP
压缩你的网页,JS,CSS!作用很大的,减少传输数据量。关键词:强制,配置