首页 > 系统相关 >在Ubuntu上部署Nginx服务器,保姆级教程!

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

时间:2024-09-05 16:23:48浏览次数:6  
标签:教程 nginx IP sudo www 用户 Nginx Ubuntu

在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(域名)/项目路由就能正常访问了。

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

标签:教程,nginx,IP,sudo,www,用户,Nginx,Ubuntu
From: https://blog.csdn.net/qq_31723953/article/details/141724390

相关文章

  • Python基础学习教程笔记 (持续更新!!)
    Python3学习数字number数学函数abs(x)返回数字的绝对值ceil(x)返回数字的上入整数floor(x)返回数字的下舍整数(x>y)-(x<y)如果x<y返回-1,如果x==y返回0,如果x>y返回1exp(x)返回e的x次幂fabs(x)以浮点数形式返回数字的绝对值,eg:math.fabs(-10)返回10.0log(x)eg:math.......
  • 桌球棋牌计时计费管理系统软件 可以语音报价停电可以恢复上次时间状态 佳易王计时计费
    一、前言 桌球棋牌计时计费管理系统软件可以语音报价停电可以恢复上次时间状态佳易王计时计费管理系统操作教程 1、佳易王桌球计时计费软件,在使用中如遇到突然停电,再次打开软件的时候,可以点击恢复上次状态按钮,时间可以恢复继续计时。 1、佳易王计时计费管理系统软件......
  • CentOS安装MySQL8教程
    官方地址:https://dev.mysql.com/downloads/mysql/选择版本前需先看一下服务器的glibc版本ldd--version上传将下载好的tar包上传到服务器上,这里演示上传到了/usr/local/文件夹下   (也可以自定义位置)解压tar-Jxvfmysql-8.0.39-linux-glibc2.17-x86_64.tar.......
  • 网络安全入门教程(非常详细)从零基础入门到精通_网路安全 教程
      前言1.入行网络安全这是一条坚持的道路,三分钟的热情可以放弃往下看了。2.多练多想,不要离开了教程什么都不会了,最好看完教程自己独立完成技术方面的开发。3.有时多百度,我们往往都遇不到好心的大神,谁会无聊天天给你做解答。4.遇到实在搞不懂的,可以先放放,以后再来解决。先......
  • 最新版Kubernetes部署教程v1.31.0
    最新版Kubernetes高可用部署教程v1.31.0系统:Almalinux9架构:192.168.100.10control-plane-endpoint.k8s.localcontrol-plane-endpoint#负载均衡服务器,配置负载均衡后修改ip后续会讲解192.168.100.10masterA.k8s.localmasterA192.168.100.20masterB.k8s.localma......
  • git及github入门教程
    目录1版本控制系统1.1集中化版本控制系统1.2分布式版本控制系统2git下载3git安装4git功能介绍4.1GitBash4.2GitCMD4.3 GitGUI4.4Git常用命令5绑定github5.1注册github5.2登录github 5.3创建仓库(工程)5.4生成SSHkey5.5绑定SSH密钥5.6验......
  • NET程序内存泄漏处理技巧/调试内存泄漏教程
    NET程序内存泄漏处理技巧/调试内存泄漏教程什么是Dump(dmp)文件?Dump是计算机技术中的重要概念,用于将内存中的数据转储到外部存储设备中,以便在出现故障时进行排查和分析。Dump文件又叫内存转储文件或者叫内存快照文件。用于存储程序运行时的状态信息的文件,这些文件通常包含了程序运......
  • Keil最新版本一条龙ARM+C51安装教程 STM32/51开发环境配置 (附下载地址)
    文件下载需要准备的文件有:下载地址:KEIL-C51:C51KEIL-ARM:MDK-ARMSTC-ISP:STCISP下载软件ARMCompilerVersion5:Compiler安装ARM双击打开下一步,更改安装目录,(如需安装在其他位置)红圈位置请手动输入,并保持前面内容与上一行(Core)一致空格即可,并点击下一步......
  • 【Python入门】教你安装2024最新的Python,最新版全面教程!!!
    2024安装Python的详细教程一、准备工作确定Python版本:访问Python官网(WelcometoPython.org),查看最新的稳定版本。在撰写本文时(2024年9月),Python3.x是当前的主要版本,其中3.10.x或3.11.x是较新的稳定版本。注意选择与你操作系统(Windows、macOS、Linux)相匹配的版本。下......
  • 【生日视频制作】星空木屋霓虹灯爱心形照片AE模板修改文字软件生成器教程特效素材【AE
    生日视频制作教程星空木屋霓虹灯爱心形照片AE模板修改文字特效广软件告生成神器素材祝福玩法AE模板替换工程怎么如何做的【生日视频制作】星空木屋霓虹灯爱心形照片AE模板修改文字软件生成器教程特效素材【AE模板】生日视频制作步骤:安装AE软件下载AE模板把AE模板......