NetCore2.2 + CentOS 7 + nginx部署
前言
本篇文章重点在于NetCore2.2部署到CentOS上面,至于NetCore的开发部分,暂且按下不表。
部署CentOS 7
前置准备工作:需要提前安装部分服务:
- FTP服务器:vsftpd;
- 反向代理服务器:nginx;
vsftpd
- 安装vsftpd:
yum -y install vsftpd - CentOS默认采用firewalld防火墙,这里我们暂时关闭防火墙;
systemctl stop firewalld - 开启vsftpd服务器
systemctl start vsftpd
- 现在利用ftp工具已经可以连接到虚拟机的ftp账户上了,但这并不是我们想要的结果,继续对ftp的账户,权限进行配置
- 关闭匿名访问:
vi /etc/vsftpd/vsftpd.conf
修改anonymous_enable=YES=>anonymous_enable=NO
- 添加ftp账户:
useradd ftpuser -s /sbin/nologin#增加ftpuser这个账户,并设置不允许用该账户登陆服务器
passwd ftpuser#设置密码
- 限制用户的访问路径:
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该文件,创建之。然后把允许访问上层目录的账号加入进去即可,若不允许用户访问上层目录,不要添加。
- 修改文件夹权限
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模式,虽说已经可以使用了,但是我们还是需要优化一下:
- 修改ftp连接模式
vi /etc/vsftpd/vsftpd.conf
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30999
开启被动pasv连接模式,并指定被动连接的端口号范围
- 再次对用户权限进行修改:
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的配置:
- 修改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
- 自己的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服务器,所以采用手动下载安装的方式:
- 下载安装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
- 配置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部署方式有两种:
- 依赖框架部署;
- 独立部署;
- 这里我们采用依赖框架部署,该部署的优点是部署文件较小。
- 安装框架依赖:
官方推荐安装方式: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#可以看到版本号意味着安装成功
- 利用ftp服务器上传web文件
- 配置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反向代理服务器就配置完毕了
- 运行web应用
cd /home/ftpuser/var/www
dotnet webname.dll#运行web应用
- 这时通过IP访问80端口就可以看到你的web应用了。
- 配置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
本文详细介绍了如何在CentOS7上配置vsftpd和nginx,以及部署NetCore2.2应用程序的过程。涵盖了从安装、配置服务到运行web应用的所有步骤。
514

被折叠的 条评论
为什么被折叠?



