在Ubuntu上部署Nginx服务器,保姆级教程!

在Ubuntu上部署Nginx服务器,保姆级教程!

前后端项目要想正常访问不可避免地就是部署服务器常见的Linux系统就有Ubuntu。对于一个新手就会遇到很多问题。

1.连接Xshell

如果不使用Xshell可以直接用命令行直接看下一步就行;
官网下载:https://www.xshell.com/zh/xshell/

下载完通过IP+端口+登录用户+登录用户密码连接,通过ip a获取IP
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.安装Nginx

1.在安装任何软件之前,先更新你的软件包列表以确保你安装的是最新的版本。
我这里使用的是xshell远程使用命令行同样的可以直接在终端运行没有影响。

sudo apt update

运行结果:
运行结果

2.直接通过命令安装
sudo apt install nginx

安装效果大概是这样的

3.安装完成后通过sudo systemctl status nginx检测Nginx运行状态;
效果如图:运行状态
绿色表示正在运行

4.更新防火墙规则
sudo ufw allow 'Nginx Full'

在这里插入图片描述

5.查看防火墙运行状态
sudo ufw status

一般是不活动的

6.查看Nginx是否正常运行

首先我们需要获取本机的IP地址在命令行输入ip a获取IP地址;

IP地址
我们会得到一段结果需要的是192.168.xxx.xxx的内容就是我们的IP地址。

这时候我们就能直接在浏览器通过http://IP地址直接访问如果看到欢迎页表示成功。

在这里插入图片描述

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/ 下原有的配置文件
在这里插入图片描述

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

在这里插入图片描述

接着还是是通过ip a获取电脑IP

在这里插入图片描述
步骤解释:
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

在这里插入图片描述

如果有不同的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
在这里插入图片描述
通过mysql -V来查看MySQL版本
在这里插入图片描述

启动服务
``sudo systemctl status mysql````

在这里插入图片描述
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;

在这里插入图片描述
改完记得先exit退出MySQL,再用sudo systemctl restart mysql重启MySQL服务。

通过第三方软件远程连接软件我这里用的是DBeaver可以直接下载

在这里插入图片描述

在这里插入图片描述

选择把本地要迁移的数据库右键-工具-转储数据库,没有别的需求可以直接转储

在这里插入图片描述
位置根据具体需求来
在这里插入图片描述

提示完成就点取消

在这里插入图片描述

在远程数据库中创建一个名称相同的库然后右键工具-恢复数据库--default-character-set=utf8mb4这个参数可以填一下,路径就是存放转储文件的位置
在这里插入图片描述
在这里插入图片描述

数据库恢复成功

在这里插入图片描述
回到虚拟机测试项目能否正常运行
java -jar /var/www/springboot/creeper.jar替换为自己的路径

在这里插入图片描述
如果端口被占用就sudo lsof -i :8300找到占用端口程序的PID,sudo kill -9 <PID>结束运行。
最后在浏览器输入http://IP(域名)/项目路由就能正常访问了。

本期文章到此结束,希望对你有所帮助,如果可以点个👍吧。

Ubuntu上安装Nginx有多种方式。一种方式是通过官方网站下载Nginx源码包,然后进行编译安装。具体步骤如下:首先,使用命令`cd /usr/local`进入/usr/local目录,然后创建一个名为nginx的文件夹,接着进入nginx文件夹。接下来,使用wget命令下载Nginx的源码包,例如`wget http://nginx.org/download/nginx-1.13.7.tar.gz`。然后,使用tar命令解压源码包,例如`tar -xvf nginx-1.13.7.tar.gz`。接下来,进入解压后的nginx-1.13.7目录,执行以下命令进行配置、编译和安装:`./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/etc/nginx/nginx.conf && make && make install`。这样就完成了Nginx的安装。\[1\]\[2\] 另一种方式是使用apt命令进行安装。首先,使用命令`sudo apt install nginx`进行安装。安装完成后,Nginx的主程序位于`/usr/sbin/nginx`,配置文件位于`/etc/nginx`,静态文件位于`/usr/share/nginx`,日志文件位于`/var/log/nginx`。启动Nginx可以使用`service nginx start`命令,重新加载配置文件可以使用`service nginx reload`命令,重启Nginx可以使用`nginx -s reopen`命令,停止Nginx可以使用`nginx -s stop`命令。要查看Nginx的版本号,可以使用`nginx -v`命令。\[3\] #### 引用[.reference_title] - *1* [基于Ubuntu系统Nginx的两种安装方式](https://blog.csdn.net/u014225032/article/details/125283332)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [ubuntu安装nginx](https://blog.csdn.net/qq_41744950/article/details/124259698)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Ubuntu搭建配置Nginx](https://blog.csdn.net/weixin_65680938/article/details/129829986)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值