.net core2.2 利用Nginx反向代理在Ubuntu下部署

本文详细介绍了在Ubuntu 18.04环境下安装.NET Core 2.2并部署项目的过程,包括配置端口、使用VS2017编译发布、解决验证码加载问题以及通过Nginx进行反向代理,实现多项目同时运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、需要给ubuntu安装.netcore的环境

我这儿使用的是Ubuntu18.04,安装的是.net core 2.2

wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo add-apt-repository universe
sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install dotnet-sdk-2.2

二、用VS2017编译并发布.netcore项目

1.设定项目的端口号,建议写到配置文件中
在这里插入图片描述
2.发布
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
部署模式改成独立,目标运行时选择linux-x64

发布完后将文件复制到ubuntu下(虚拟机可以用vmware-tools拖进去,服务器的话,可以使用sftp等工具)

三、在ubuntu下运行项目

在发布文件目录下,运行发布后的dll
我这儿是XingHe.WebUI.dll
在这里插入图片描述
出来这个画面表示已经运行了
此时我们可以使用浏览器运行测试一下
在这里插入图片描述
如果运行出了问题,可能是开了防火墙,我们把8080端口开放一下,顺便把80端口也开放一下

sudo ufw allow 8080
sudo ufw allow 80

四,利用Nginx反向代理(目的是通过访问80端口来间接访问8080端口)

肯定会有人问,为什么不直接使用80端口呢。(其实这是可以的)
如果我们同一台服务器上要部署多个web应用呢,两个程序不能同时使用80端口。
这个会扯远,回到正题

1.安装Nginx

sudo apt install nginx

安装完后,通过浏览器运行一下
在这里插入图片描述
出来这个画面就表示安装成功了

2.修改配置文件

sudo vim /etc/nginx/sites-enabled/default

将配置文件修改成如下:

server{
       listen 80;
       location /{
                   proxy_pass http://localhost:8080;
                   proxy_set_header Host $host;
                   proxy_http_version 1.1;
                 }
}

重启一下nginx

nginx -s reload

此时我们在浏览器访问一下80端口试试
在这里插入图片描述
此时表示配置完成了

我们登录一下后台,在登录的时候可能会出现验证码出不来
控制台出现这么一个问题,那我们怎么解决呢?
在这里插入图片描述
具体操作如下:

apt-get update
apt-get install -y libgdiplus
cd /usr/lib
ln -s libgdiplus.so gdiplus.dll

然后重启一下dotnet项目(不是重启nginx)

五、利用Ngiux反向代理多个dotnet core项目
比如abc.test.comdef.test.com 都指向这台linux服务器IP
我们想通过abc.test.com来访问8080端口
通过def.test.com来访问8081端口
我们该怎么配置呢?

sudo vim /etc/nginx/sites-enabled/default

修改如下:

server {  
        listen 80;  
        server_name abc.test.com;   
        location / {  
 	        proxy_pass http://localhost:8080;
	        proxy_set_header Host $host;
            proxy_http_version 1.1;
        }       
    }  
server {  
        listen 80;  
        server_name  def.test.com;  
        location / {  
            proxy_pass http://localhost:8081;
            proxy_set_header Host $host;
            proxy_http_version 1.1; 
        }          
    }  

最后重启一下nginx

nginx -s reload

OK就到这儿吧(如有错误,欢迎大家指正)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值