3分鐘爲反向代理架設的Gogs增加https服務(nginx)

一、環境

我把Gogs架設在了阿里雲學生機上,使用的是CentOS7.4 x64,利用寶塔Linux面板安裝了lnmp的運行環境。在此前尚未增加https的時候,我是利用nginx的反向代理,把80端口轉發到3000端口(Gogs的默認服務端口是3000)就可以直接訪問搭建完成的Gogs了,nginx配置如下【下文中所指的 www.host 皆爲你自己訪問gogs的域名

server {
    listen 80;
    server_name www.host.com;

    location / {
        proxy_pass http://localhost:3000;
    }
}

 

二、增加Https

2.1、申請HTTPS證書,並下載證書相關文件

在阿里雲處填寫相關信息並提交申請後,你可以下載到一個壓縮包,其中包含了 fileName.pem / fileName.key 兩個文件

2.2、修改Gogs配置文件

打開FXtp或其他工具,在gogs的安裝目錄中 custom/conf/app.ini 文件中修改下列配置選項

[server]
PROTOCOL = https
#注意這裏要改成https://
ROOT_URL = https://www.host.com/
#證書文件
CERT_FILE = custom/https/fileName.pem
KEY_FILE = custom/https/fileName.pem

3、修改nginx反向代理配置

此前nginx反向代理如下

server {
    listen 80;
    server_name www.host.com;

    location / {
        proxy_pass http://localhost:3000;
    }
}

現在補充一些配置

server {
    listen 443;
    server_name www.host.com;
    ssl on;
	ssl_certificate /home/git/gogs/custom/https/fileName.pem;
	ssl_certificate_key /home/git/gogs/custom/https/fileName.key;
	ssl_session_timeout 5m;
	ssl_protocols SSLv2 SSLv3 TLSv1;
	ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
	ssl_prefer_server_ciphers on;
    location / {
        #這裏主要也要將http://修改爲https://
        proxy_pass https://localhost:3000;
    }
}
server {
	#HTTP跳轉HTTPS
    listen  80;
    server_name www.host.com;
    rewrite ^(.*)$  https://$host$1 permanent;
}

修改後重啓nginx後就可以享受https了

 

三、心得

事實上,在2.2這個步驟完成後就可以通過訪問 https://你的IP地址:3000 看到,https實際上已經開啓了。也就是說你如果不需要用域名訪問你的gogs,直接開放3000端口,做到2.2步驟就可以了。

但我是通過開放443和80使用域名來進行端口轉發的,這樣的好處是:只要開放80端口,就可以直接訪問你的網站,而不需要一個網站開一個端口。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章