租云服务器
略
安装Nginx
sudo apt update
sudo apt install nginx
安装Nginx
sudo systemctl start nginx
启动Nginx
sudo systemctl enable nginx
开机启动
sudo systemctl status ngix
查看状态
此时浏览器访问公网ip地址
,发现无法访问,此时需要打开80端口
。
添加安全组
打开云服务的ECS控制台
,找到安全组
,选择创建好的实例
,进入后点击入方向规则
,点击快速添加规则
,添加80
和443
端口。
浏览器访问公网ip地址,出现Welcome to nginx!
表示成功。
注册域名
华为云域名注册 进行购买
域名解析
配置DNS服务地址
登录域名注册控制台。找到购买的域名
,点进去,里面有DNS服务器
,点击修
改,将提示的四个DNS都填上。
此时,浏览器通过链接访问域名,出现Welcome to nginx!
表示成功。
域名备案
SSL证书
SSL证书管理
证书签发后,点击下载(Nginx版),将下载的两个文件上传到服务器的/etc/nginx/cert/
目录下。
Nginx配置
打开nginx.config
文件,可以看到两个include /etc/nginx/**
sudo
打开default
文件,
1.打开443端口。
2.添加关键字: ssl_certificate:"/etc/nginx/cert/证书.crt";
ssl_certificate_key:"/etc/nginx/cert/秘钥.key";
3.server_name
的值修改为我们的域名。
4.使用sudo nginx -t 检查是否存在语法错误
5.sudo nginx -s reload 重启服务即可
通过浏览器访问https://域名.com
显示安全的连接代表成功。
安装docker
首先停止**Nignx:**``sudo systemctl stop nginx
安装docker
配置本地终端(gitbash)连接服务器
docker环境配置
docker环境配置祖传文件传完可以进行下一步啦!
安装MySQL
安装:
sudo apt-get install mysql-server
启动:
sudo service mysql start
输入top
如果出现mysqld_safe
和mysqld
表示成功。
设置root
用户密码
sudo mysql -u root #连接mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '123456'; #设置密码
exit #退出
sudo mysql -u root -p #重新登录
create database xxx #创建数据库
source xxx.sql #创建项目用到的表
安装Java 8 / 17
sudo apt-get install openjdk-8-jdk
sudo apt install openjdk-17-jdk
java --version #查看版本
打包后端
1.给controller
里的每个api
配置统一的格式 在链接前面加上/api
。然后放行。
2.使用Maven
打包。先clean
后package
3.将jar
包上传到服务器,java -jar xxx.jar
启动服务
配置nginx
1.将下载的证书放到/etc/nginx/cert/
目录下
2.配置nginx.conf文件
# /etc/nginx/nginx.conf
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
# multi_accept on;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
# default_type application/octet-stream;
types {
application/javascript js;
}
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip on;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
server {
listen 80;
server_name your servername;
rewrite ^(.*)$ https://${server_name}$1 permanent;
}
server {
listen 443 ssl;
server_name your servername;
ssl_certificate cert/acapp.crt;
ssl_certificate_key cert/acapp.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
charset utf-8;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
client_max_body_size 10M;
location /api {
proxy_pass http://127.0.0.1:3000;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location / {
root /home/acs/17project/web;
index index.html;
try_files $uri $uri/ /index.html;
}
}
}
sudo /etc/init.d/nginx start
如果状态为ok
表示启动成功,若为failed
表示启动失败,此时可以去cd /var/log/nginx/error.log
查看失败说明。
打包前端
npm run build
打包好之后,将dist文件夹上传到服务器的web文件夹下,将内容取出,删掉dist文件夹。
之后通过域名可以访问web程序了。
注意:
打包好的index.html
里引用的css
和js
一定一定要改成绝对路径
,否则会出现Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of “text/html”. Strict MIME type checking is enforced for module scripts per HTML spec这个错误
改成绝对路径:将前面的.
删掉