我是靠谱客的博主 愤怒苗条,最近开发中收集的这篇文章主要介绍使用Nginx部署ssl+react+java项目,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

众所周知,如果身边有一个什么都能做的大神,就会变成一个什么都不会的废人

自从我前任域名到期后,我就想要重新站起来,成为自己的大神!

第一步 就从重新部署自己的博客开始学起????


首先在服务器上安装nginx,对于像我这种半路出家的小前端来说,对服务器操作的了解也是一知半解

所以我们直接使用大神的一键安装系列脚本之nginx一键安装

curl -O https://dshvv.oss-cn-beijing.aliyuncs.com/inginx_ssl.sh && chmod 755 ./inginx_ssl.sh && ./inginx_ssl.sh  && rm -rf ./inginx_ssl.sh

要配置ssl就需要ssl证书。这个要自己申请哈,不管是阿里云还是腾讯云,都有一年免费年年可重新申请的证书使用

特此说明,二级域名也要申请自己的证书

也有那种多金人专属通道,花一些小????????,申请一个一站式覆盖全部域名的证书

我是在腾讯云申请的证书,因为我的域名就在腾讯了,还可以自动解析,很方便

如下是nginx的ssl配置,具体请看后方备注~~~~!!(我删除了原来自带的用不上的注释)

#user  nobody;
worker_processes  1;
events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        #SSL协议访问端口号为443。此处如未添加ssl,可能会造成Nginx无法启动。
        listen 443 ssl;   
        #填写绑定证书的一级域名
        server_name han96.com; 
        root html;
        index index.html index.htm;
        #证书文件的存放位置
        ssl_certificate /han96/ssl/a.crt; 
        #私钥文件的存放位置
        ssl_certificate_key /han96/ssl/a.key; 
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;  #使用此加密套件。
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;   #使用该协议进行配置。
        ssl_prefer_server_ciphers on;   
        location / {
            root html;   #站点目录。
            index index.html index.htm;   
        }
    }
    #二级域名证书
    server {
        listen 443 ssl; 
        #二级域名。
        server_name api.han96.com;  
        root html;
        index index.html index.htm;
        #二级域名证书文件的存放位置
        ssl_certificate /han96/apissl/1.crt; 
        #二级域名私钥文件的存放位置
        ssl_certificate_key /han96/apissl/2.key; 
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;  #使用此加密套件。
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;   #使用该协议进行配置。
        ssl_prefer_server_ciphers on;   
        
        location / {
             proxy_pass http://95.169.9.121:7777; #代理地址
              proxy_set_header Host $host;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_set_header X-Forwarded-Proto $scheme;
              proxy_set_header X-Forwarded-Port $server_port;
        }
    }
    #前台react项目配置
    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;
        root         html/build;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        #默认打开html目录下的index.html文件
        location ~* html {
            rewrite .* /index.html break;
            root html/build;
        }

        error_page 404 /404.html;
            location = /index.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }

        # 重定向-访问http时自动跳转到https
        rewrite ^ https://$http_host$request_uri? permanent;
    }
    #用二级域名来配置后台java请求地址
    server {
        listen 80;
        server_name api.han96.com;
        root html;
        index index.html index.htm;
        
        location / {
              #换成真正部署的后台项目地址
              proxy_pass http://111.111.1.111:7777; 
              proxy_set_header Host $host;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_set_header X-Forwarded-Proto $scheme;
              proxy_set_header X-Forwarded-Port $server_port;
        }
    }
}

⚠️注意

  1. 前台react项目编译好之后可以直接放到nginx的html目录下,默认打开的就是html目录下的index.html文件,当然是可以配置的
  2. 可以配置http/https各自都可以访问站点,我没有研究所以不会-。-,在这里用的是重定向的方式,如果用户打开了http,直接跳转到https页面进行访问
  3. 我的二级域名主要用来做后台的请求地址,在项目里好看一点
  4. 最最最最重要的一点,每次更改配置都要重新执行刷新命令才能生效,具体路径看nginx安装到了哪里,如果用的一键安装系列,就放在了use目录下
    /usr/local/nginx/sbin/nginx -s reload

最后是java后台的部署,用的是jar包的部署方式,在本地打包好之后上传到服务器中

怎么打包我就不说了????,俺也不是学java的

然后请出我们的一键安装系列之一键安装java

curl -O https://dshvv.oss-cn-beijing.aliyuncs.com/ijava.sh && chmod 755 ./ijava.sh && ./ijava.sh  && rm -rf ./ijava.sh

部署到7777端口上,端口号这种东西看自己的心情啦,有一点说明,不要忘记改成自己的jar包名!!!

#使用默认配置的启动命令
# & 后台运行
# port 指定端口号
nohup java -jar my-demo-server-0.0.1-SNAPSHOT.jar --server.port=7777 &


# 完整的启动命令
# dev 使用测试配置环境 application-dev.yml
nohup java -jar imy-demo-server-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev --server.port=7777 &


可以访问我的博客看看效果哈 ????    花贝の博客|一个有点社恐的前端开发从业者

更多一键安装系列可以到大神的博客查看????  一键安装系列 - 华少丁 - 博客园

最后

以上就是愤怒苗条为你收集整理的使用Nginx部署ssl+react+java项目的全部内容,希望文章能够帮你解决使用Nginx部署ssl+react+java项目所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部