Discourse是一个为现代网络构建的开源社区讨论平台。
本教程将引导您完成配置Discourse的步骤,使用Nginx将其移至反向代理后面。在备用代理后面移动话语为您提供了在Droplet上运行其他网站的灵活性。
在我们开始之前,请确保您拥有以下内容:
本教程中的所有命令都应以非root用户身份运行。如果命令需要root访问权限,则前面会有sudo
。
现在你已经安装了Discourse,我们需要将它配置为在Nginx后面工作。
警告:在我们配置Nginx之前,这将导致您的Discourse论坛停机。确保这是全新安装的Discourse或备份服务器,直到配置完成。
我们只需要将一个设置更改为Discourse,这样我们就可以将它移到Nginx之后。切换到包含配置文件的目录:
cd /var/discourse
然后,打开我们需要更改的配置文件:
sudo nano containers/app.yml
使用箭头键向下滚动到该expose
部分(它应该在顶部附近)并更改此行上的第一个端口号:
...
## which TCP/IP ports should this container expose?
expose:
- "25654:80" # fwd host port 80 to container port 80 (http)
...
此号码可以是随机的,不应与他人共享。如果您愿意,您可以在您的服务器上启用防火墙,如果您使用的是腾讯云的CVM服务器,您可以直接在腾讯云控制台中的安全组进行设置。
现在保存并退出文本编辑器。
通过运行启用配置更改:
sudo ./launcher rebuild app
此步骤可能需要一段时间,请耐心等待。
您可以访问您的网站验证一切正常。Discourse(例如http://discourse.example.com
)的域名将不再在Web浏览器中加载界面,但如果您使用刚为Discourse配置的端口,例如http:///discourse.example.com:25654
(将discourse.example.com替换为您的域名,并将25654替换为您刚刚在此步骤中使用的端口)。
现在Discourse已安装并配置为在Nginx后面工作,现在是安装Nginx的时候了。
要在Ubuntu上安装Nginx,只需输入此命令即可开始安装:
sudo apt-get install nginx
浏览到您的旧话语网址的URLhttp://discourse.example.com
将显示默认的Nginx网页:
这可以。我们现在将此更改为您的论坛。首先,让我们停止Nginx:
sudo service nginx stop
然后,删除此默认网页配置 - 我们不需要它:
sudo rm /etc/nginx/sites-enabled/default
接下来,我们将为我们的Discourse服务器创建一个新的配置文件,我们将其命名discourse
。
sudo nano /etc/nginx/sites-enabled/discourse
复制并粘贴以下配置。用您的域名来替换discourse.example.com
以及用您在上一步中使用的端口来替换25654
:
server {
listen 80;
server_name discourse.example.com;
return 301 https://discourse.example.com$request_uri;
}
server {
listen 443 ssl spdy;
server_name discourse.example.com;
ssl_certificate /etc/letsencrypt/live/discourse.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/discourse.example.com/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://discourse.example.com:25654/;
proxy_read_timeout 90;
proxy_redirect http://discourse.example.com:25654/ https://discourse.example.com;
}
}
这是配置的作用:
discourse.example.com
,并在端口443上将所有请求重定向到SSL。这是可选的,但它会强制所有用户在您的网站上使用SSL。25654
(在本例中为Discourse)。这主要使用反向代理将Discourse页面发送给您的用户并通过SSL进行回传。您可能已经注意到我们正在/etc/letsencrypt
上引用一些证书。在下一步中,我们将在重新启动Nginx之前生成这些。
最后,我们的配置应该是完整的。运行此命令重新启动Nginx:
sudo service nginx restart
现在,如果您浏览https://discourse.example.com/
,您的网站应该在线并使用Let's Encrypt进行保护,在大多数浏览器中显示为绿色锁。
而已!您现在在Nginx后面设置了一个Discourse论坛。
更多Ubuntu教程请前往腾讯云+社区学习更多知识。
参考文献:《 How To Install Discourse Behind Nginx on Ubuntu 14.04》
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。