Asp.Net Core使用Nginx实现反向代理
---恢复内容开始---
前两篇文章介绍了使用Docker作为运行环境,用Nginx做反向代理的部署方法,这篇介绍一下使用Nginx配合.Net Core运行时直接在Liunx上裸奔的方法。
一、安装.NET Core 运行时
如果已经安装了运行时,请跳过第一步。
https://www.microsoft.com/net/download/linux-package-manager/rhel/runtime-current
在网址中下载对应的操作系统运行时,我使用的是CentOs7-x64
二、配置服务
在/etc/systemd/system 下新建文件(推荐使用winscp),文件名以.service结尾,配置内容为:
[Unit] Description=HZKJ #服务描述,随便填就好 [Service] WorkingDirectory=/website/HZKJ #工作目录,填你应用的绝对路径 ExecStart=/usr/bin/dotnet /website/HZKJ/CZKJ.CMS.Web.dll #启动:前半截是你dotnet的位置(一般都在这个位置),后半部分是你程序入口的dll,中间用空格隔开 Restart=always RestartSec=25 #如果服务出现问题会在25秒后重启,数值可自己设置 SyslogIdentifier=HZKJ #设置日志标识,此行可以没有 User=root #配置服务用户,越高越好 Environment=ASPNETCORE_ENVIRONMENT=Production [Install] WantedBy=multi-user.target
写完配置文件后保存,输入指令确认服务:
systemctl enable (你的服务名).service
例如:systemctl enable HZKJ.service;
然后启动服务 systemctl start HZKJ.service
然后查看一下服务状态:systemctl status HZKJ 出现下图状态说明服务运行正常。
三、配置Nginx反向代理
首先你得先安装Nginx,没有安装的同学请参考前两篇文章。
在 /etc/nginx下找到Nginx配置文件 nginx.conf 打开配置文件
找到Server节点按照一下配置进行配置
server {
listen 80 ; #监听80端口
server_name www.hongzhuojituan.com; #绑定域名
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf; #指定配置文件可不填
#配置反向代理
location / {
proxy_pass http://localhost:5000; #把80端口的访问反向代理到5000端口(你程序的启动端口),请根据实际情况修改自己的端口
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $http_host;
proxy_cache_bypass $http_upgrade;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
#配置没有带www时把请求301到有www的域名
server {
listen 80 ;
server_name hongzhuojituan.com;
rewrite ^(.*)$ http://www.hongzhuojituan.com$1 permanent;
root /usr/share/nginx/html;
include /etc/nginx/default.d/*.conf;
}
精简版本:
server { listen 80;
server_name example.com *.example.com;
location / {
proxy_pass http://localhost: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;
}
}
配置好之后保存,输入命令:nginx -t 检测配置文件是否有错
如果没有错的话输入命令:nginx -s reload 让nginx 加载最新的配置文件
在外界访问域名,成功访问到在5000端口运行的程序。
至此在使用Nginx进行反向代理成功,后期如果更改了程序内容需要重启对应服务。