• Ubuntu部署netcore网站


    Docker部署netcore网站,并使用Docker nginx 作为正向代理;

    创建测试项目后,修改网站监听端口,具体设置方式请查阅另一篇博文《Ubuntu部署Asp.net core网站无法访问》

    上传publish文件到Linux,创建文件Dockerfile,编辑内容为:

    FROM mcr.microsoft.com/dotnet/core/aspnet //从该镜像拉取
    WORKDIR /app  //工作目录
    COPY . .  
    EXPOSE 80 //容器对外开放端口
    CMD ["dotnet", "website.dll"] //执行命令

    把网站打包成镜像

    docker build -t website .

    创建并运行容器

    docker run --name website -p 8080:80 -d website

    至此,网站已成功发布。使用ip:port即可访问网站。

    接下来使用docker拉取nginx

    docker pull nginx

    在创建nginx容器前先创建好挂载目录

    cd var
    mkdir nginx
    cd nginx
    mkdir www conf logs

    进入conf文件夹,创建并编辑nginx.conf配置文件

    cd conf
    vim nginx.conf

    nginx.conf文件内容

    user nginx;
    # 运行用户,默认是nginx
    worker_processes auto;
    # nginx进程数,一般设置为和cpu核数一样
    error_log /var/log/nginx/error.log;
    # 全局错误日志路径
    pid /run/nginx.pid;
    # 进程pid路径
    # Load dynamic modules. See /usr/share/nginx/README.dynamic.
    # 负载动态模块
    include /usr/share/nginx/modules/*.conf;
    
    events {
    # 工作模式与连接数上限
        worker_connections 1024;
       # 单个进程的最大连接数
    }
    
    http {
    # 设置http服务器
        log_format  main  '$http_host $server_addr $remote_addr [$time_local] "$request" $status  $request_body  $body_bytes_sent "$http_referer" "$http_user_agent" $request_time $upstream_response_time';
        # 设置日志的格式
    
        access_log  /var/log/nginx/access.log  main;
        # 访问日志的路径
    
        sendfile            on;
        # 开启高效传输模式
        tcp_nopush          on;
        # 激活tcp_nopush参数可以允许把http response header和文件的开始放在一个文件里发布,作用是减少网络报文段的数量
        tcp_nodelay         on;
        # 激活tcp_nodelay,内核会等待将更多的字节组成一个数据包,从而提高I/O性能
        keepalive_timeout   65;
        # 长连接超时时间,单位是秒
        types_hash_max_size 2048;
        # 为了快速处理静态数据集,例如服务器名称, 映射指令的值,MIME类型,请求头字符串的名称,nginx使用哈希表
    
        include             /etc/nginx/mime.types;
        # 文件扩展名与类型映射表
        default_type        application/octet-stream;
        # 默认文件类型
    
        # Load modular configuration files from the /etc/nginx/conf.d directory.
        # 加载模块化配置文件
        # See http://nginx.org/en/docs/ngx_core_module.html#include
        # for more information.
        include /etc/nginx/conf.d/*.conf;
    
        server {
        # 基于域名的虚拟主机
            listen       80 default_server;
            # 监听端口
            listen       [::]:80 default_server;
            server_name  _;
            # 域名
            #root         /usr/share/nginx/html;
            # 站点根目录,即网站程序存放目录
    
            # Load configuration files for the default server block.
            # 默认服务器块的加载配置文件
            include /etc/nginx/default.d/*.conf;
    
            location / {
                proxy_pass http://ip:8080;
            }
    
            error_page 404 /404.html;
                location = /40x.html {
            }
    
            error_page 500 502 503 504 /50x.html;
                location = /50x.html {
            }
        }
    }

    创建并运行容器

    docker run -d -p 80:80 --name blog -v $PWD/www:/usr/share/nginx/html -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/var/log/nginx nginx

    Nginx部署完成,此刻直接输入ip可直接访问网站。



  • 相关阅读:
    特征归一化
    什么是端到端(end2end)学习?
    RSA加密原理及其证明
    python脚本中__all__变量的用法
    洛谷 1108 低价购买
    洛谷 3029 [USACO11NOV]牛的阵容Cow Lineup
    洛谷 1365 WJMZBMR打osu! / Easy
    洛谷 2759 奇怪的函数
    洛谷 2921 [USACO08DEC]在农场万圣节Trick or Treat on the Farm
    牛客网NOIP赛前集训营 提高组 第5场 T2 旅游
  • 原文地址:https://www.cnblogs.com/lifuquan/p/12498924.html
Copyright © 2020-2023  润新知