Add feature that automatic setting return 301 according to environment variables

This commit is contained in:
Stille 2021-05-28 23:52:44 +08:00
parent 1fdaaa8890
commit 8ccbc82f04
3 changed files with 22 additions and 16 deletions

View File

@ -128,20 +128,8 @@ docker-compose up -d
## 进阶
### 强制跳转 HTTPS
如使用`HTTPS`部署,可手动修改`nginx/vhost`目录中的`rss.conf`和`rsshub.conf`第`9`行,将`#`注释符号删除.
```nginx
return 301 https://rss.yourdomain.com$request_uri;
```
重启 docker compose 生效
```shell
# 建议直接停止并在次启动
cd rssforever
# 进入目录
docker-compose down
# 停止
docker-compose up -d
# 启动
```
**2021-05-28 新增功能:**
当`.env`配置`PROTOCOL=https`时,将自动配置`return 301`强制跳转至`HTTPS`协议.
### 证书更新
本项目目前并未配置自动更新证书的功能,今后视情况加入其中.

View File

@ -20,6 +20,7 @@ services:
- ./nginx/ssl:/etc/nginx/ssl
- ./nginx/html:/usr/share/nginx/html
environment:
- PROTOCOL=${PROTOCOL}
- RSS_DOMAIN=${RSS_DOMAIN}
- RSS_DOAMIN_CERT=${RSS_DOAMIN_CERT}
- RSS_DOMAIN_KEY=${RSS_DOMAIN_KEY}

View File

@ -1,4 +1,21 @@
sed -i -e "/rss.yourdomain.com/s/rss.yourdomain.com/${RSS_DOMAIN}/g" -e "/yourdomain.com.cer/s/yourdomain.com.cer/${RSS_DOAMIN_CERT}/g" -e "/yourdomain.com.key/s/yourdomain.com.key/${RSS_DOMAIN_KEY}/g" /etc/nginx/conf.d/vhost/rss.conf
sed -i -e "/rsshub.yourdomain.com/s/rsshub.yourdomain.com/${RSSHUB_DOMAIN}/g" -e "/yourdomain.com.cer/s/yourdomain.com.cer/${RSSHUB_DOAMIN_CERT}/g" -e "/yourdomain.com.key/s/yourdomain.com.key/${RSSHUB_DOMAIN_KEY}/g" /etc/nginx/conf.d/vhost/rsshub.conf
if [ "$PROTOCOL" = "https" ];
then
sed -i '/return 301/s/#//g' \
/etc/nginx/conf.d/vhost/rss.conf \
/etc/nginx/conf.d/vhost/rsshub.conf
fi
sed -i \
-e "/rss.yourdomain.com/s/rss.yourdomain.com/${RSS_DOMAIN}/g" \
-e "/yourdomain.com.cer/s/yourdomain.com.cer/${RSS_DOAMIN_CERT}/g" \
-e "/yourdomain.com.key/s/yourdomain.com.key/${RSS_DOMAIN_KEY}/g" \
/etc/nginx/conf.d/vhost/rss.conf
sed -i \
-e "/rsshub.yourdomain.com/s/rsshub.yourdomain.com/${RSSHUB_DOMAIN}/g" \
-e "/yourdomain.com.cer/s/yourdomain.com.cer/${RSSHUB_DOAMIN_CERT}/g" \
-e "/yourdomain.com.key/s/yourdomain.com.key/${RSSHUB_DOMAIN_KEY}/g" \
/etc/nginx/conf.d/vhost/rsshub.conf
nginx -s reload
nginx -g 'daemon off;'