最近尝试用VS2019的NetCore3.1做了一个Demo小程序,测试一下NetCore的用法与NetFrameWork的不同。
具体的不同不在这里赘述,这里主要说一下如题的这些配置问题。
VS2019的发布 目前不知道如何实现iis那种直接部署的方法,只能发布成文件,之后传到linux的服务器上。
正常发布就可以了。
Centos7上建立一个文件夹,将发布的网站放到里面。
在Centos7上安装dotnetcore3.0的环境。
注册 Microsoft 密钥和源
sudo rpm -Uvh
安装 .NET Core SDK
sudo yum install dotnet-sdk-3.1
安装 ASP.NET Core 运行时
sudo yum install aspnetcore-runtime-3.1
三步安装完Core3.0的运行环境。
测试:进入到Web网站目录,例如:cd/home/sjj/Web后,运行dotnet*.dll--urls
:5000
,检测一下dotnetcore是否能够正常运行。
一般没有问题。
配置DNS服务器:
yum-yinstallbind
配置/etc/named.conf
其中的file对应的文件位置/var/named,一个是正向文件,一个是反向文件即:sjj.com.zone,192.168.147.130.arpa
sjj.com.zone文件内容为:
$TTL 1D
@ IN SOAsjj.com. rname.invalid. (
0 ; serial
1D; refresh
1H; retry
1W; expire
3H ); minimum
NS@
A 127.0.0.1
AAAA::1
www IN A 192.168.147.130
192.168.147.130.arpa的内容为:
INNS@
PTR localhost
100INPTR www.sjj.com
启动域名服务,systemctl start named
安装配置Nginx服务:
1、添加源
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
2、安装Nginx
sudo yum install -y nginx
3、启动Nginx并设置开机自动运行
systemctl start nginx.service启动服务
systemctl enable nginx.service开机自启动
此时在网内可以正常的访问域名。
配置文件/etc/nginx nginx.conf文件
在server代码块中输入:
listen 80;
server_name localhost;
location / {
proxy_pass :5000;
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;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
将其它的删除即可。
设置开机自动启动Coreweb应用:
安装supervisord服务
yum install Supervisor
配置文件位置:supervisord -c /etc/supervisord.conf
手动写一个.ini文件,名称随意起,内容为:
[program:Sample1]
command=dotnet First.dll --urls :5000
directory=/home/sjj/Web
environment=ASPNETCORE__ENVIRONMENT=Production
user=root
stopsignal=INT
autostart=true
autorestart=true
startsecs=3
stderr_logfile=/root/netcoresamples/sample1/log/Sample1.err.log
stdout_logfile=/root/netcoresamples/sample1/log/Sample1.log
将该文件放入/etc/supervisord.d目录中、
systemctl start supervisord启动该服务
systemctl enable supervisord开机自启动该服务
这样就可以服务器开机自动启动Coreweb网站
坑:
1、域名无法访问,502错误,解决方法
可以关闭防火墙。systemctl stop firewalld.service。但是这种方法太彻底。
可以只开通对应的端口即可
firewall-cmd --query-port=80/tcp查询端口是否开放
firewall-cmd --zone=public --add-port=80/tcp --permanent开放指定的端口,这里需要开放的端口包括:80,Core网站对应的端口,
systemctl restart firewalld.service 重启防火墙,使之生效。
2、一切都无误,但是还是无法访问域名,但是ip地址可以访问,这里需要设置linux服务器的网络访问配置
setsebool -P httpd_can_network_connect 1 写入配置文件的命令,重启后保留
3、检查windows端的网络防火墙,要么关闭,要么在入站、出站规则中允许指定的端口。网卡的dns要设置成linux服务器的ip地址,用nslookup www.sjj.com检查一下是否正常即可。用tracert 跟踪一下,如果没有走指定的dns,可以到windows/system32/driver/etc/hosts文件指定一下。
4、遇到Coreweb访问都正常,但是涉及到访问数据库就不正常的情况(数据库不在linux服务器上),此时需要:
1、设置数据库可以远程访问
2、linux打开指定的端口可以允许通过,例如1433。
综上,就可以实现通过域名可以反向代理到指定的Coreweb网站上。
举报/反馈