NetCore2.2 + CentOS 7 + nginx部署

本文详细介绍了如何在CentOS7上配置vsftpd和nginx,以及部署NetCore2.2应用程序的过程。涵盖了从安装、配置服务到运行web应用的所有步骤。

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

前言

本篇文章重点在于NetCore2.2部署到CentOS上面,至于NetCore的开发部分,暂且按下不表。

部署CentOS 7

前置准备工作:需要提前安装部分服务:

  1. FTP服务器:vsftpd;
  2. 反向代理服务器:nginx;
vsftpd
  1. 安装vsftpd:yum -y install vsftpd
  2. CentOS默认采用firewalld防火墙,这里我们暂时关闭防火墙;systemctl stop firewalld
  3. 开启vsftpd服务器 systemctl start vsftpd
  • 现在利用ftp工具已经可以连接到虚拟机的ftp账户上了,但这并不是我们想要的结果,继续对ftp的账户,权限进行配置
  1. 关闭匿名访问:

vi /etc/vsftpd/vsftpd.conf
修改 anonymous_enable=YES => anonymous_enable=NO

  1. 添加ftp账户:

useradd ftpuser -s /sbin/nologin #增加ftpuser这个账户,并设置不允许用该账户登陆服务器
passwd ftpuser #设置密码

  1. 限制用户的访问路径:

vi /etc/vsftpd/vsftpd.conf
修改 :
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
凡是加在文件vsftpd.chroot_list中的用户都是不受限止的用户。即, 可以浏览其主目录的上级目录.所以, 如果不希望某用户能够浏览其主目录上级目录中的内容,可以如上设置, 然后在文件vsftpd.chroot_list中不添加该用户即可.
vi /etc/vsftpd/chroot_list 默认没有chroot_list该文件,创建之。然后把允许访问上层目录的账号加入进去即可,若不允许用户访问上层目录,不要添加。

  1. 修改文件夹权限

chmod a-w /home/ftpuser/var # 取消文件夹的写权限;
cd /home/ftpuser/var
mkdir www #创建www目录放置web程序
chown ftpuser www #给ftpuser账户添加权限
systemctl restart vsftpd #重启ftp服务

  • 现在已经可以通过ftp工具连接到该ftp服务器了,不过这时会发现,ftp连接比较慢,输出窗口会显示从连接方式更改为PORT模式,虽说已经可以使用了,但是我们还是需要优化一下:
  1. 修改ftp连接模式

vi /etc/vsftpd/vsftpd.conf
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30999
开启被动pasv连接模式,并指定被动连接的端口号范围

  1. 再次对用户权限进行修改:

vi /etc/vsftpd/vsftpd.conf
userlist_enable=YES
userlist_deny=NO #添加
userlist_file=/etc/vsftpd/user_list #添加
systemctl restart vsftpd #重启ftp服务
配置之后,把允许登陆ftp服务器的用户添加到/etc/vsftpd/user_list文件内,否则该用户不能登陆ftp服务器;

  • 截止到这,ftp服务器的配置基本完成,用户可以快速的通过ftp工具连接ftp服务器了。但是可能会出现一个问题,明明已经给用户添加权限了,但是还是不能修改文件,这时候就需要修改SELinux的配置:
  1. 修改SELinux对于ftp的限制:

getsebool -a|grep ftp

ftpd_anon_write --> off
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> off
ftpd_use_cifs --> off
ftpd_use_fusefs --> off
ftpd_use_nfs --> off
ftpd_use_passive_mode --> off
httpd_can_connect_ftp --> off
httpd_enable_ftp_server --> off
tftp_anon_write --> off
tftp_home_dir --> off

setsebool -P allow_ftpd_full_access on
setsebool -P tftp_home_dir on
reboot #重启linux服务器才能使设置生效

  • 这样我们的ftp服务器就配置完毕了。下面开始配置Nginx
nginx
  1. 自己的CentOS服务器使用nginx需要安装nginx的依赖;

yum install -y gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel

  • 之后可以尝试直接yum install -y nginx来安装nginx服务器,不过我的CentOS服务器镜像列表里面没有nginx服务器,所以采用手动下载安装的方式:
  1. 下载安装nginx:

yum install -y wget #安装下载器
wget -c -P /usr/local/nginx https://nginx.org/download/nginx-1.14.2.tar.gz # -c 断点续传,可有可无;-P 指定下载目录
tar -zxvf nginx-1.14.2.tar.gz #解压缩nginx
cd nginx-1.14.2
./configure && make && make install #使用默认配置,编译安装
systemctl start nginx

  1. 配置nginx服务

vi /usr/lib/systemd/system/nginx.service #创建nginx.service文件

[Unit]
Description=nginx
After=network.target
 
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target

systemctl enable nginx #配置nginx服务开机自启

部署NetCore

NetCore部署方式有两种:

  • 依赖框架部署;
  • 独立部署;
  • 这里我们采用依赖框架部署,该部署的优点是部署文件较小。
  1. 安装框架依赖:
    官方推荐安装方式:Install .NET Core SDK on Linux CentOS / Oracle x64 | .NET
sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
sudo yum update
sudo yum install dotnet-sdk-2.2

不过我的CentOS没有该镜像,所有需要手动安装:sdk2.2下载地址

wget -c https://download.visualstudio.microsoft.com/download/pr/80e1d007-d6f0-402f-b047-779464dd989b/9ae5e2df9aa166b720bdb92d19977044/dotnet-sdk-2.2.101-linux-x64.tar.gz
mkdir -p $HOME/dotnet && tar zxf dotnet-sdk-2.2.101-linux-x64.tar.gz -C $HOME/dotnet
export DOTNET_ROOT=$HOME/dotnet
export PATH=$PATH:$HOME/dotnet
dotnet --version #可以看到版本号意味着安装成功

  1. 利用ftp服务器上传web文件
  2. 配置nginx:

vi /usr/local/nginx/conf/nginx.conf #具体目录位置在于解压缩的位置

server {
	listen	80;
	server_name	webname;
	location / {
		proxy_pass	http:localhost:5000;
	}
}

systemctl restart nginx
默认监听80端口,web项目启动在5000端口;

  • 这样一个简单的nginx反向代理服务器就配置完毕了
  1. 运行web应用

cd /home/ftpuser/var/www
dotnet webname.dll #运行web应用

  • 这时通过IP访问80端口就可以看到你的web应用了。
  1. 配置web应用为后台服务

vi /usr/lib/systemd/system/webname.service

 [Unit]
Description=Webname Web App

[Service]
WorkingDirectory=/home/ftpuser/var/www
Environment=ASPNETCORE_ENVIRONMENT=Production
ExecStart=/usr/bin/dotnet NetCore.fw.web.dll
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

systemctl enable webname #开机自启
systemctl start webname

  • 这样配置完毕之后,web应用就可以在后台运行,不占用前台进程了。

结语

每天进步1m,一年就可以进步365m!!!

等到365天之后,你会发现,新技术走了365km(手动狗头)
[1]: https://dotnet.microsoft.com/download/linux-package-manager/centos/sdk-current
[2]: https://dotnet.microsoft.com/download/thank-you/dotnet-sdk-2.2.101-linux-x64-binaries

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值