nginx配置http+https访问tomcat项目以及配置http强转https

来自博客:https://blog.csdn.net/weidong_y/article/details/80559607

ssl自签证书博客:https://www.cnblogs.com/hzm112567/p/4269316.html

一、在 linux (CentOS)上安装 nginx

第一步:添加 nginx 存储库

[objc]  view plain  copy
  1. xshell> yum install epel-release  

第二步:安装 nginx

[objc]  view plain  copy
  1. xshell> yum install nginx  

使用 yum 安装 nginx 后,nginx 的默认路径为:/etc/nginx


第三步:启动 nginx

[objc]  view plain  copy
  1. xshell> systemctl start nginx  
如果你正在运行防火墙,请运行以下命令以允许 HTTP 和 HTTPS 通信:
[objc]  view plain  copy
  1. xshell> firewall-cmd --permanent --zone=public --add-service=http   
  2. xshell> firewall-cmd --permanent --zone=public --add-service=https  
  3. xshell> firewall-cmd --reload  

第四步:访问 nginx 以验证安装是否成功

由于 nginx 默认的端口号为 80 ,直接在浏览器上输入你的 ip 地址 +80 端口号(例如:111.111.111.111:80),能够访问到 

nginx 的页面即表示 nginx 已经安装成功。类似于下图。


第五步: 设置系统启动时候启用 nginx 

[objc]  view plain  copy
  1. xshell> systemctl enable nginx  

二、使用 nginx 配置域名访问 tomcat 项目

第一步: 打开 nginx 的配置文件 nginx.conf。

具体路径:/etc/nginx/nginx.conf

第二步:配置文件需要修改的源码(配置讲解在第三步)

[objc]  view plain  copy
  1. upstream xx{   
  2.        server 193.112.53.11:8080;  
  3.    }  
  4.    server {  
  5.        listen       80 default_server;  
  6.        listen       [::]:80 default_server;  
  7.        server_name  www.yyddd.cn;  
  8.        root         /usr/share/nginx/html;  
  9.   
  10.        # Load configuration files for the default server block.  
  11.        include /etc/nginx/default.d/*.conf;  
  12.   
  13.        location / {  
  14.     proxy_pass http://xx/cz_manager/;  
  15.     proxy_set_header Host $http_host;  
  16.                proxy_set_header X-Real-IP $remote_addr;  
  17.                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
  18.        }  
  19.   
  20.        error_page 404 /404.html;  
  21.            location = /40x.html {  
  22.        }  
  23.   
  24.        error_page 500 502 503 504 /50x.html;  
  25.            location = /50x.html {  
  26.        }  
  27.    }  

第三步:配置文件修改讲解


第四步:配置完成后保存,然后重启(重新加载) nginx ,不然访问不到

[objc]  view plain  copy
  1. xshell> nginx -s reload  

第五步:验证

在浏览器上,输入自己配置的域名,如果能访问到配置的项目,就说明配置成功。如果还有什么不懂的话可以给

我留言。

三、nginx 配置 https 

第一步:申请证书

关于证书的申请,请转步看我另外一篇博客的第一部分:

https://blog.csdn.net/weidong_y/article/details/80555382

第二步:把证书上传到服务器上

下面是我在腾讯云申请的 ssl 证书,下载证书后,打开的文件内容如下,我们使用的是 nginx 配置 https ,所有

打开 Nginx 文件,把文件下的两个文件上传到服务器上(放在哪里自己决定,知道路径就行,后面配置需要用到

证书的路径)



***********自签证书*********************************************************

1、首先确保机器上安装了openssl和openssl-devel

# yum install openssl
# yum install openssl-devel

 

2、生成证书

复制代码
首先,进入你想创建证书和私钥的目录,例如:
# cd /etc/nginx/

创建服务器私钥,命令会让你输入一个口令:
# openssl genrsa -des3 -out server.key 1024

创建签名请求的证书(CSR):
# openssl req -new -key server.key -out server.csr

在加载SSL支持的Nginx并使用上述私钥时除去必须的口令:
# cp server.key server.key.org
# openssl rsa -in server.key.org -out server.key
最后标记证书使用上述私钥和CSR:
# openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt

********************************************************************

第三步:打开配置文件 nginx.conf 

1.在配置文件中,找到下面这段代码,把注释给去掉,或者直接复制我下面这段代码进行修改也行。

[objc]  view plain  copy
  1. server {  
  2.        listen       443 ssl http2 default_server;  
  3.        listen       [::]:443 ssl http2 default_server;  
  4.        server_name  www.yydddd.cn;  
  5.        root         /usr/share/nginx/html;  
  6.   
  7.        ssl_certificate "/etc/nginx/1_yydddd.cn_bundle.crt";  
  8.        ssl_certificate_key "/etc/nginx/2_yydddd.cn.key";  
  9.        ssl_session_cache shared:SSL:1m;  
  10.        ssl_session_timeout  10m;  
  11.        ssl_ciphers HIGH:!aNULL:!MD5;  
  12.        ssl_prefer_server_ciphers on;  
  13.   
  14.        # Load configuration files for the default server block.  
  15.        include /etc/nginx/default.d/*.conf;  
  16.   
  17.        location / {  
  18.     proxy_pass http://xx/cz_manager/;  
  19.     proxy_set_header Host $http_host;  
  20.                proxy_set_header X-Real-IP $remote_addr;  
  21.                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
  22.        }  
  23.   
  24.        error_page 404 /404.html;  
  25.            location = /40x.html {  
  26.        }  
  27.   
  28.        error_page 500 502 503 504 /50x.html;  
  29.            location = /50x.html {  
  30.        }  
  31.    }  

2.配置解析


3.配置完成后保存,然后重启(重新加载) nginx ,不然访问不到

[objc]  view plain  copy
  1. xshell> nginx -s reload  

4.验证

直接在浏览器输入:https://www.yydddd.cn(请换成自己的域名)

能够正常访问到的话,就是配置 https 成功了。

四、nginx 强制使用 https 访问

所谓强制使用 https 访问,就是用户使用 http 访问的时候,直接转到 https 访问。

只需要修改 http 的配置即可:


重启nginx

[objc]  view plain  copy
  1. xshell> nginx -s reload  

使用域名(例如:www.yyddd.cn)直接访问的时候,直接跳转到 https 访问的话,就说明配置成功了。





  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值