本文最后更新于:May 13, 2023 pm
积土成山,风雨兴焉;积水成渊,蛟龙生焉;积善成德,而神明自得,圣心备焉。故不积跬步,无以至千里,不积小流无以成江海。齐骥一跃,不能十步,驽马十驾,功不在舍。面对悬崖峭壁,一百年也看不出一条裂缝来,但用斧凿,能进一寸进一寸,能进一尺进一尺,不断积累,飞跃必来,突破随之。
目录
小知识
| ssh-keygen -R 11.11.11.11 ssh root@11.11.11.11
|
Java环境
安装JDK
官方下载
下载后上传到服务器再解压。
解压
配置环境
在最后添加:
| export JAVA_HOME=/usr/local/java export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH
|
配置生效
最后输入 java -version看是否成功。
Nginx
安装
跳转防火墙
再访问服务器ip可看到Nginx的页面。
配置
比如我们的网站是 example.com ,那我们创建一个对应的目录 example.com 目录(根据自己的需求,改成自己的目录):
| sudo mkdir -p /var/www/example.com/html
|
接下来,使用$USER
环境变量分配目录的所有权:
| sudo chown -R $USER:$USER /var/www/example.com/html
|
如果我们没有修改自己的umask
值,那么 Web 根目录的权限应该正确,我们可以通过输入以下命令来确认:
| sudo chmod -R 755 /var/www/example.com
|
将Vue前端打包的dist目录下的所有文件复制到此目录下(/var/www/example.com/html
)。
接下来我们为 Nginx 来创建一个服务器块。与直接修改默认配置文件不同,我们在以下位置创建一个新文件:/etc/nginx/sites-available/example.com
| sudo vim /etc/nginx/sites-available/example.com
|
粘贴到以下内容添加到文件中,这个块的配置与默认块的配置相似,但针对我们的新目录和域名进行了更新:
/etc/nginx/sites-available/example.com
| server { listen 80; listen [::]:80; root /var/www/example.com/html; index index.html index.htm index.nginx-debian.html; server_name example.com www.example.com; location / { try_files $uri $uri/ =404; } }
|
接下来,让我们通过在sites-enabled
目录新建一个链接,好让 Nginx 在启动过程中会读取这个目录:
| sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
|
现在已启用并配置了两个服务器块,以及基于它们的listen
和server_name
指令响应请求:
example.com
: 将会响应example.com
和 www.example.com
的请求
default
: 将会响应 80 端口的请求,以及不能匹配到两个服务器块上的请求
为避免可能由于添加其他服务器名称而引起的哈希存储区内存问题,有必要调整/etc/nginx/nginx.conf
文件中的单个值。
打开文件:
| sudo vim /etc/nginx/nginx.conf
|
找到server_names_hash_bucket_size
指令并删除#
符号:
| ... http { ... server_names_hash_bucket_size 64; ... } ...
|
完成后保存并关闭文件。
接下来,测试以确保我们在 Nginx 文件中的改动,没有任何问题:
如果没有任何问题,请重新启动 Nginx:
| sudo systemctl restart nginx
|
Nginx 现在已经可以按照刚刚我们配置的方式来工作啦。当用户通过http://example.com
域名访问我们的服务器时,Nginx 会将它指向我们刚刚创建的 Html 页面。
后端项目启动
将打包好的Vue前端项目和后端项目jar包上传到服务器。我是上传到了 /home/user/server
安装Java环境
如果已经安装可以跳过。如果在运行后面那条命令时出现了提示,则进行安装。
| apt install openjdk-8-jre-headless
|
默认路径:/usr/lib/jvm。也可以自行上传jdk,再解压配置。
后台运行
| java -jar *****.jar --server.port=8080 &
|
重新部署
替换之前的前端或后端(Jar包)。
然后关闭之前的进程。因为如果再一次直接启动后端,会出现端口已经被占用的的信息,也就重新部署失败,后端还是之前的。
用命令查看有关java的进程:
然后关闭之前的后端进程:
然后再启动:
| java -jar xxxx.jar --server.port=8081 &
|
配置SSL(2022/3/27)
注意开端口!!!
官方教程 需要注意的是,我这里是腾讯云的SSL证书,阿里云的域名和服务器。
这里只记录以上面讲述的方式
部署项目,怎么部署SSL。若是其他的建议看官网。
首先在腾讯云申请SSL证书并下载Nginx版本的到本地解压。只需要把 .crt
文件和 .key
文件上传到 /etc/nginx
目录下 。
再去修改配置:(文件位置 /etc/nginx/sites-available/example.com
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| server { listen 443 ssl; server_name cloud.tencent.com; ssl_certificate cloud.tencent.com_bundle.crt; ssl_certificate_key cloud.tencent.com.key; ssl_session_timeout 5m; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; location / { root /var/www/example.com/html; index index.html index.htm index.nginx-debian.html; try_files $uri $uri/ /index.html; } }
|
然后执行:
再重启Nginx:
| sudo systemctl restart nginx
|
然后就可以使用 https://cloud.tencent.com
进行访问了。但是,只是这样还不行。我们还需要设置从HTTP自动跳转HTTPS。也比较简单。
在刚刚修改的配置文件中加入配置即可:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| server { listen 443 ssl; server_name cloud.tencent.com; ssl_certificate cloud.tencent.com_bundle.crt; ssl_certificate_key cloud.tencent.com.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; location / { root /var/www/example.com/html; index index.html index.htm index.nginx-debian.html; try_files $uri $uri/ /index.html; } } server { listen 80; server_name cloud.tencent.com; return 301 https://$host$request_uri; }
|
然后再重启Nginx。
记录自己的配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| server { listen 443 ssl; server_name moreoj.cn www.moreoj.cn; ssl_certificate moreoj.cn_bundle.crt; ssl_certificate_key moreoj.cn.key; ssl_session_timeout 5m; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; location / { root /var/www/moreoj.cn/html; index index.html index.htm index.nginx-debian.html; try_files $uri $uri/ /index.html; } } server { listen 80; server_name moreoj.cn www.moreoj.cn; return 301 https://$host$request_uri; }
|