美文网首页
源码gitea+nginx+ssl+https

源码gitea+nginx+ssl+https

作者: Hmcf | 来源:发表于2019-11-28 13:47 被阅读0次

    环境:centos7、postgresql10.6、gitea 1.11

    官方文档:https://docs.gitea.io/zh-cn/command-line/

    首先在服务器上配置go基础环境。这里再回顾一下centos下配置go开发环境。

    源码编译安装golang

    简单点上傻瓜代码流

    wget https://studygolang.com/dl/golang/go1.13.4.linux-amd64.tar.gz
    tar -xvf go1.13.4.linux-amd64.tar.gz -C /usr/local/
    vi /etc/profile 
    export GOROOT=/usr/local/go 
    export GOPATH=/root/gopath 
    export PATH=$PATH:$GOROOT/bin 
    source /etc/profile
    yum install -y git
    adduser git
    

    下载gitea源码

    go get -d -u code.gitea.io/gitea
    cd $GOPATH/src/code.gitea.io/gitea
    

    选择稳定的版本(源码包路径下)

    git branch -a            // 列出版本
    git checkout  版本名
    

    编译(源码包路径下)

    TAGS="bindata" make generate build
    go build
    

    启动测试(源码包路径下)

    ./gitea web
    

    浏览器输入IP:3000


    1574918124(1).png

    在有特殊需求的情况下可以二次开发,具体方法在参照官方源码。


    接下来看看使用nginx代理,配置ssl证书,达到https要求。

    鉴于很多情况下是在测试,没有实际上的证书,所以自己造一个。
    造证书:

    放在nginx/conf/ssl目录
    1.创建服务器证书密钥文件 server.key:
    openssl genrsa -des3 -out server.key 1024
    输入密码,确认密码,自己随便定义,但是要记住,后面会用到。
    2.创建服务器证书的申请文件 server.csr
    openssl req -new -key server.key -out server.csr
    输出内容为:
    Enter pass phrase for root.key: ← 输入前面创建的密码
    Country Name (2 letter code) [AU]:CN ← 国家代号,中国输入CN
    State or Province Name (full name) [Some-State]:BeiJing ← 省的全名,拼音
    Locality Name (eg, city) []:BeiJing ← 市的全名,拼音
    Organization Name (eg, company) [Internet Widgits Pty Ltd]:MyCompany Corp. ← 公司英文名
    Organizational Unit Name (eg, section) []: ← 可以不输入
    Common Name (eg, YOUR name) []: ← 此时不输入
    Email Address []:admin@mycompany.com ← 电子邮箱,可随意填
    Please enter the following ‘extra’ attributes
    to be sent with your certificate request
    A challenge password []: ← 可以不输入
    An optional company name []: ← 可以不输入
    4.备份一份服务器密钥文件
    cp server.key server.key.org
    5.去除文件口令
    openssl rsa -in server.key.org -out server.key
    6.生成证书文件server.crt
    openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
    

    安装nginx(这里就不说步骤,网上很多https://www.cnblogs.com/ghjbk/p/6744131.html

    nginx -t 检查nignx.conf配置文件的语法
    nginx -s stop
    nginx -s reload 重启
    nginx 启动

    修改nginx.conf(建议cp)

    [root@gitea ~]# cat /usr/local/nginx/conf/nginx.conf
    
    events {
        worker_connections  1024;
    }
    
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        sendfile        on;
    
        server{
                listen 80;
                server_name inofagit.com;
                rewrite ^ https://inofagit.com/$request_uri? permanent;
        }
        server {
                listen 443 ssl;
                #ssl on;
                server_name inofagit.com;
                #证书(公钥.发送到客户端的)
                ssl_certificate ssl/server.crt;
                ssl_certificate_key ssl/server.key;
                #ssl_session_timeout 5m;
                #ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
                #ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
                #ssl_prefer_server_ciphers on;
                location / {
                        proxy_set_header Host $http_host;
                        proxy_set_header X-Real-IP $remote_addr;
                        proxy_set_header Upgrade $http_upgrade;
                        proxy_set_header Connection "upgrade";
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                        proxy_set_header X-Forwarded-Proto $scheme;
                        proxy_redirect off;
                        proxy_pass http://localhost:3000;
                }
        }
    
    }
    
    [root@gitea ~]#
    

    修改配置文件要重载nginx -s reload

    本地测试的话为了达到更好的效果,需要配置hosts文件,将server name 配置上。
    添加一行内容到末尾。
    192.168.122.162 inofagit.com


    外传:
    Nginx 系列 - 用 GoAccess 实现可视化并实时监控 access 日志
    可以监控到网站的访问请求
    可参考:https://www.codercto.com/a/73999.html

    效果如下

    image.png

    相关文章

      网友评论

          本文标题:源码gitea+nginx+ssl+https

          本文链接:https://www.haomeiwen.com/subject/csbvwctx.html