首页 > 数据库技术 > 详细

ubuntu16.04 + nginx + asp.net core webapi + vue + mssql2017

时间:2020-03-06 11:47:57      阅读:81      评论:0      收藏:0      [点我收藏+]

如果还没安装ubuntu系统,请参考这里 虚拟机安装ubuntu16.04详细步骤

1.安装 asp.net core2.2

官方链接
只需要安装 ASP.NET Core 运行时,因为它同时包括 .NET Core 和 ASP.NET Core 运行时。

  • 在终端中,运行以下命令。 每台计算机只需要执行一次此操作。
wget -q https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
  • 在终端中,运行以下命令 安装 ASP.NET Core 运行时。
sudo apt-get update
sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install aspnetcore-runtime-2.2

2.安装 nginx

终端执行以下命令

# 安装nginx
sudo apt-get install nginx -y
# 启动nginx
sudo service nginx start

打开浏览器输入127.0.0.1 显示如下内容则表示安装成功
技术分享图片

3.安装 mssql2017

官方链接(https://docs.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-ubuntu?view=sql-server-linux-2017#prerequisites)

3.1. 导入公共存储库 GPG 密钥:

wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -

3.2. 注册 Microsoft SQL Server Ubuntu 存储库

sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-2017.list)"

3.3. 运行以下命令以安装 SQL Server:

sudo apt-get update
sudo apt-get install -y mssql-server

3.4. 包安装完成后,运行 mssql-conf setup,按照提示设置 SA 密码并选择版本。

sudo /opt/mssql/bin/mssql-conf setup

3.5. 完成配置后,验证服务是否正在运行:

systemctl status mssql-server --no-pager

3.6. 如果计划远程连接,可能还需要在防火墙上打开 SQL Server TCP 端口(默认值为 1433)。

  • 一般情况下,Ubuntu安装好的时候,iptables会被安装上。如果没有,执行下面命令
sudo apt-get update
sudo apt-get install iptables
  • 安装完后,开放8000端口,使用下面命令:
sudo iptables -I INPUT -p tcp --dport 8000 -j ACCEPT
  • 保存规则
iptables-save 

3.7. 安装 SQL Server 命令行工具

  • 导入公共存储库 GPG 密钥。
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
  • 注册 Microsoft Ubuntu 存储库。
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list
  • 更新源列表,并使用 unixODBC 开发人员包运行安装命令。
sudo apt-get update 
sudo apt-get install mssql-tools unixodbc-dev
  • 可选:向 bash shell 中的 PATH 环境变量添加 /opt/mssql-tools/bin/ 。

    要使 sqlcmd/bcp 能从登陆会话的 bash shell 进行访问,请使用下列命令修改 ~/.bash_profile 文件中的 PATH :

    echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile

    要使 sqlcmd/bcp 能从交互式/非登录会话的 bash shell 进行访问,请使用下列命令修改 ~/.bashrc 文件中的 PATH :
    (因为我要在外部通过mssql管理工具连接linux的数据库,所以我执行了下面的命令)

    echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
    source ~/.bashrc

4.部署项目

4.1. 准备工作

  • asp.net core webapi 项目
  • vue 项目

需要把这两个项目先复制到ubuntu里面,如下图所示

技术分享图片

4.2. nginx配置文件

因为要使用nginx做asp.net core网站的反向代理,我们需要修改nginx的默认配置文件/etc/nginx/sites-enabled/default ,将以下内容替换默认配置:

upstream api {
    server 127.0.0.1:5000;
}

# api项目
server {
    listen 8080; # 监听8080端口 转发到 5000
    server_name localhost:8080;
    location /{
        proxy_pass http://api;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection keep-alive;
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;
    }
}

# vue 项目
server {
        listen 80;
        listen [::]:80;
    
        server_name localhost:80; 
    
    root /home/su/public/vue-admin/dist; # 项目的根目录
    
    index index.html; # 首页
    
        location / {
        try_files $uri $uri/ @router;
        }
    
    location @router {
        rewrite ^.*$ /index.html last;
    }
}

如果文件只读,需要执行如下命令修改权限(需要root)
技术分享图片

修改后,重启 nginx 执行如下命令

nginx -t  # 检查配置文件
nginx -s reload # 重启nginx

技术分享图片

4.3. 守护进程

在/etc/systemd/system 下新建文件,文件名以.service结尾,配置内容为(注意:中文注释需要删掉,否则部分 Linux 服务器会报错):

[Unit]
Description=ShopApi #服务描述,随便填就好

[Service]
WorkingDirectory=/home/su/public/shopapi #工作目录,填你应用的绝对路径
ExecStart=/usr/bin/dotnet /home/su/public/shopapi/App.dll #启动:前半截是你dotnet的位置(一般都在这个位置),后半部分是你程序入口的dll,中间用空格隔开
Restart=always  
RestartSec=25 #如果服务出现问题会在25秒后重启,数值可自己设置
SyslogIdentifier=ShopApi
User=root #配置服务用户,越高越好
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target

写完配置文件后保存,输入指令确认服务:

systemctl enable (你的服务名).service

例如:

systemctl enable core.api.service

然后启动服务

systemctl start core.api.service

然后查看一下服务状态 出现状态说明服务运行正常。

systemctl status core.api

再次输入127.0.0.1
技术分享图片

至此 大功告成 结束

ubuntu16.04 + nginx + asp.net core webapi + vue + mssql2017

原文:https://www.cnblogs.com/su1961117443/p/12418845.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!