在Ubuntu上摆设Nginx服务器,保姆级教程!
在Ubuntu上摆设Nginx服务器,保姆级教程!前后端项目要想正常访问不可制止地就是摆设服务器常见的Linux体系就有Ubuntu。对于一个新手就会碰到很多问题。
1.毗连Xshell
如果不使用Xshell可以直接用命令行直接看下一步就行;
官网下载:https://www.xshell.com/zh/xshell/
下载完通过IP+端口+登录用户+登录用户密码毗连,通过ip a获取IP
https://i-blog.csdnimg.cn/direct/f829282657d842e5b9bb7d87fcd699a2.png
https://i-blog.csdnimg.cn/direct/e4cf1b4d16b34d19928d07f4f06c3296.png
https://i-blog.csdnimg.cn/direct/fb3f3320852f41b0842c04fe38cf220c.png
2.安装Nginx
1.在安装任何软件之前,先更新你的软件包列表以确保你安装的是最新的版本。
我这里使用的是xshell远程使用命令行同样的可以直接在终端运行没有影响。
sudo apt update
运行结果:
https://i-blog.csdnimg.cn/direct/4b62bf08cf8546aba984afab93c53abb.png
2.直接通过命令安装
sudo apt install nginx
https://i-blog.csdnimg.cn/direct/6bac57d6720d44d8ad2ec5ba4aa85dc6.png
3.安装完成后通过sudo systemctl status nginx检测Nginx运行状态;
结果如图:https://i-blog.csdnimg.cn/direct/bf14245595b64f8aad9118c945579689.png
绿色表示正在运行
4.更新防火墙规则
sudo ufw allow 'Nginx Full'
https://i-blog.csdnimg.cn/direct/c8d47fd3a93e4f6fad931153a0eda45d.png
5.检察防火墙运行状态
sudo ufw status
https://i-blog.csdnimg.cn/direct/72f46d80e5c248bd93d6addddec52b4d.png
6.检察Nginx是否正常运行
起首我们需要获取本机的IP地址在命令行输入ip a获取IP地址;
https://i-blog.csdnimg.cn/direct/17136a08d1704d4b8b0dd1125d97950d.png
我们会得到一段结果需要的是192.168.xxx.xxx的内容就是我们的IP地址。
这时间我们就能直接在浏览器通过http://IP地址直接访问如果看到欢迎页表示乐成。
https://i-blog.csdnimg.cn/direct/0e8e1864b49d4bcb8b9a06ef85479260.png
3.设置Nginx设置文件
Nginx 的设置文件位于 /etc/nginx/ 目录下。重要设置文件是 nginx.conf,虚拟主机设置文件位于 /etc/nginx/sites-available/ 和 /etc/nginx/sites-enabled/。
我们先创建两个文件夹分别用于存放前端和后端的项目文件方便管理
前端路径sudo mkdir -p /var/www/vue
后端路径sudo mkdir -p /var/www/springboot
再创建一个新的虚拟主机设置文件
在 /etc/nginx/sites-available/ 目录下创建一个新设置文件:
sudo nano /etc/nginx/sites-available/website.com
然后添加以下内容
我是直接使用/etc/nginx/sites-available/ 下原有的设置文件
https://i-blog.csdnimg.cn/direct/43a5c5362340448db83572bd4716e0a1.png
server { # 将项目反向代理到80端口这样前后端访问就不用添加端口号了
listen 80 default_server;
listen [::]:80 default_server;
# 前端文件路径
root /var/www/vue;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
# 如果有域名就添加,没有域名就用下划线
# server_name example.com www.website.com;
server_name _;
# 前端配置
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ /index.html;
}
# 后端配置
location /api { # api用于规范后端
rewrite ^/api/(.*)$ /$1 break; # 有段获取数据不用加api但是前端获取数据加上api就要添加这行
proxy_pass http://localhost:8000; # 端口号根据application.yml中的端口号修改
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;
}
}
添加完就CTPL+X然后选择Y生存并退出界面
然后重启Nginx服务
sudo nginx -t
sudo systemctl reload nginx
添加SSL证书
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com
4.将项目文件添加到服务器
这时间就要借助第三方工具来完成了我这边使用的是FileZilla 点击检察下载
下载完成安装SSH服务
sudo apt install openssh-server
安装完成检察状态同样绿色表示正常
sudo systemctl status ssh
https://i-blog.csdnimg.cn/direct/4a7e47b8a12b4156a496c08ac06d3b7f.png
接着照旧是通过ip a获取电脑IP
https://i-blog.csdnimg.cn/direct/5b241486d61945d3a5eb033f67818fa5.png
步骤解释:
1.添加毗连
2.输入IP
3.端口默认22
4.登录时使用的用户名
5.登录时用的密码
6.协议一定要选择SFTP
紧接着就是将你的前端与后端文件放入对应的文件夹,这一步需要赋予远程毗连也就是软件毗连数据库的权限否则没权限传文件,先通过id 要给权限的用户来获取组然后就是通过指令给前后端文件夹远程设置权限。
使用 chown 命令将 /var/www 目录的所有者更改为 www 用户,并设置适当的组,为了确保 www 用户拥有完全控制权,而其他用户只有读取权限,可以设置目录的权限为 700,将用户名改为你的用户名。
sudo chown -R 要给权限的用户名:组号 /var/www
sudo chmod -R 700 /var/www
再就是直接将文件拖过来
5.设置java情况
我是用的是java17根据自己的需求选择差异的java版本
sudo apt install openjdk-17-jdk
https://i-blog.csdnimg.cn/direct/a39e60211ab9472b8dbc0d3453278b85.png
如果有差异的java版本可以i通过sudo update-alternatives --config java切换默认版本
运行打包的java程序通过java -jar 需要运行的程序路径大概cd到对于路径下的.jar文件比如java -jar /var/www/springboot/creeper.jar
6.安装MySQL
先安装MySQL服务器,如果需要MySQL客户端也可以运行sudo apt install mysql-client
sudo apt install mysql-server
https://i-blog.csdnimg.cn/direct/55af681eb663463b8443931b93020aef.png
通过mysql -V来检察MySQL版本
https://i-blog.csdnimg.cn/direct/b7d588adfd4e43358a9dad744ef1b810.png
启动服务
``sudo systemctl status mysql````
https://i-blog.csdnimg.cn/direct/9eda93c2c0fc486699eeafb631c1efcf.png
MySQL安装后,有一个安全性脚本可以用来移除默认的危险选项,设置root用户密码等。
sudo mysql_secure_installation
按照提示完成设置,建议设置root密码并移除匿名用户、禁止远程root登录、删除测试数据库并重新加载权限表。
以root身份登录数据库
mysql -u root -p
再就是创建用户并答应远程访问
CREATE USER 'www'@'%' IDENTIFIED BY '123456';
CREATE USER ‘用户名’@‘答应谁人IP登录(设为%表示答应所有IP通过该IP访问)’ IDENTIFIED BY ‘用户密码’; 创建一个名为 www 的用户,并为其设置密码。
ALTER USER 'www'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
修改用户属性
GRANT ALL PRIVILEGES ON *.* TO 'www'@'%' WITH GRANT OPTION;为用户 www 授予对所有数据库的所有权限,并答应该用户进一步授予权限给其他用户。
FLUSH PRIVILEGES;
革新MySQL权限,使得更改立即见效。
如果创建失败可能是密码策略的问题对密码策略进行更改就行,比如
将密码策略更改为 LOW,这样就只要求密码长度至少为6个字符,而不要求混合大小写、数字和特别字符。将混合大小写、数字和特别字符的要求设置为0
SET GLOBAL validate_password.policy = LOW;
SET GLOBAL validate_password.length = 6;
SET GLOBAL validate_password.mixed_case_count = 0;
SET GLOBAL validate_password.number_count = 0;
SET GLOBAL validate_password.special_char_count = 0;
https://i-blog.csdnimg.cn/direct/08f9517b1cbe42038e45b89a91837d47.png
改完记得先exit退出MySQL,再用sudo systemctl restart mysql重启MySQL服务。
通过第三方软件远程毗连软件我这里用的是DBeaver可以直接下载
https://i-blog.csdnimg.cn/direct/e780ac8caaf0489a8edcce2c860ee96d.png
https://i-blog.csdnimg.cn/direct/1503ebdb30d74ef49c689fbef14e4b24.png
选择把本地要迁移的数据库右键-工具-转储数据库,没有别的需求可以直接转储
https://i-blog.csdnimg.cn/direct/52a66489ace14d808abb54c62191b62f.png
位置根据详细需求来
https://i-blog.csdnimg.cn/direct/84b0800f87304d13bae4f8f4b857217b.png
提示完成就点取消
https://i-blog.csdnimg.cn/direct/20a6074fd47b4943a5c9c577df911009.png
在远程数据库中创建一个名称雷同的库然后右键工具-恢复数据库--default-character-set=utf8mb4这个参数可以填一下,路径就是存放转储文件的位置
https://i-blog.csdnimg.cn/direct/e7196067422a44f3a041594eb841e616.png
https://i-blog.csdnimg.cn/direct/654b79392c254483ac26b0bf50138b20.png
数据库恢复乐成
https://i-blog.csdnimg.cn/direct/620e74dbb68644178f02294fe0317ed4.png
回到虚拟机测试项目能否正常运行
java -jar /var/www/springboot/creeper.jar替换为自己的路径
https://i-blog.csdnimg.cn/direct/24ad2b76a31b4ce4a50a76341f64b613.png
如果端口被占用就sudo lsof -i :8300找到占用端口程序的PID,sudo kill -9 <PID>结束运行。
末了在浏览器输入http://IP(域名)/项目路由就能正常访问了。
本期文章到此结束,希望对你有所资助,如果可以点个
页:
[1]