• Centos7运行NETCore完整教程(三):nginx反向代理


    目录

    1.安装nginx

    2.修改nginx配置

    3.将Nginx添加到SELinux白名单

    4.测试连接


    1.安装nginx

    1.添加 Nginx 存储库

    sudo yum install epel-release

    2.安装nginx

    sudo yum install nginx

    3.启动nginx

    sudo systemctl start nginx

    再设置开机启动

    sudo systemctl enable nginx

    启动后浏览器地址输入你的IP地址直接访问

    如果访问不了,那就是防火墙需要添加配置,如果用的是firewall,可以用以下指令来添加80端口和允许 HTTP / HTTPS 通信。

    firewall-cmd --permanent --zone=public --add-port=80/tcp       //添加80端口
    firewall-cmd --permanent --zone=public --add-service=http      //允许HTTP
    firewall-cmd --permanent --zone=public --add-service=https     //允许HTTPS

    其中“--permanent"参数表示永久生效设置;"--zone"参数表示作用区域。

    再重启下防火墙是配置生效

    sudo systemctl restart firewalld

    如果防火墙用的是iptables,那之前已经配置过了,这里就不用配置了,详情查看Linux运行NETCore完整教程(二):MySQL8.0的第七点。

    2.修改nginx配置

    首先,把Nginx的默认配置文件 /etc/nginx/nginx.conf里 80 端口转发配置 server 节点用 # 符注释掉。

    通过以下指令, 打开文件编辑模式, 输入i 进行编辑 完成后 按ESC键输入:wq 回车 退出编辑模式

    vi /etc/nginx/nginx.conf

    如果系统有视图界面的话可以直接打开编辑,方便很多。我是用图形界面直接编辑的,加“#”注释。

    然后我们切换到 /etc/nginx/conf.d目录下创建一个自定义的Nginx配置文件用来代理Core 程序, 我创建名称为netcore.conf(自定义文件名)。

    cd /etc/nginx/conf.d
    touch netcore.conf

    编辑配置文件,内容如下:

    server {
        listen 80;
        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_pass 后的url为你在core 启动项配置的路径(默认localhost:5000)

    配置完后保存退出,最后执行以下指令重启nginx

    nginx -s reload

    3.将Nginx添加到SELinux白名单

    将项目dotnet跑起来后,我们本机访问页面会出现以下情况

    这个问题是由于SELinux保护机制所导致,我们需要将nginx添加至SELinux的白名单。

    执行以下指令,将Nginx添加到SELinux白名单

    yum install policycoreutils-python
    sudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx
    sudo semodule -i mynginx.pp

    PS:如果执行命令时出现下列情况:

    执行 sudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx

    返回的是nothing to do的话,说明项目还没有跑起来,需要先把项目跑起来,在终端dotnet下,再重新访问下nginx站点。

    执行 sudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx
    时出现:you must specify the -p option with the path to the policy file

    请先检查SELinux是否被禁用掉了

    在/etc/sysconf下有一个SeLinux文件,使用记事本打开,更改其中的SELINUX项的值就可以了。

    SELINUX=disable  禁用SeLinux
    SELINUX=enforcing  使用SeLinux
    如果是禁用就设置为使用状态。

    4.测试连接

    将项目在终端运行起来,在本地机浏览器输入虚拟机的ip访问

    也有可能会出现以下情况:

    被location重定向到5001端口,而5001端口是系统分配给这个站点的Https端口。

    在net core官网文档查到Startup类默认是建议使用HTTPS的,解决方法有二、一是你在centos上安装好HTTPS证书,二是注释掉Startup类中的app.UseHttpsRedirection(); 重新发布。

  • 相关阅读:
    poj 1466 Girls and Boys (最大独立集)
    hdu 3667 Transportation (拆边 ,最小费用流)
    poj 3487 The Stable Marriage Problem (稳定婚姻 GaleShapley算法 )
    ZOJ Problem Set 1239 (最小点覆盖 )
    poj 2060 Taxi Cab Scheme (最小路径覆盖)
    poj 2226 Muddy Fields (最小点覆盖)
    hdu 1281 棋盘游戏 (二分图)
    hdu 3666 THE MATRIX PROBLEM (差分约束)
    poj 1325 Machine Schedule (最小点覆盖)
    ORACLE导入导出
  • 原文地址:https://www.cnblogs.com/zt102545/p/13940237.html
Copyright © 2020-2023  润新知