前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在Ubuntu 14.04上安装Nginx背后的话语

如何在Ubuntu 14.04上安装Nginx背后的话语

原创
作者头像
朝朝
修改2018-10-09 17:20:35
6110
修改2018-10-09 17:20:35
举报

介绍

Discourse是一个为现代网络构建的开源社区讨论平台。

本教程将引导您完成配置Discourse的步骤,使用Nginx将其移至反向代理后面。在备用代理后面移动话语为您提供了在Droplet上运行其他网站的灵活性。

课程准备

在我们开始之前,请确保您拥有以下内容:

  • Ubuntu 14.04 腾讯CVM(1 GB或更大),没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器
  • 具有sudo权限的非root用户
  • 完全注册的域名。如果你没有域名,建议您先去这里注册一个域名,您需要将域名解析到您的服务器,您可以使用腾讯云云解析进行快速设置。
  • 确保您的域名配置为指向您的腾讯CVM。

本教程中的所有命令都应以非root用户身份运行。如果命令需要root访问权限,则前面会有sudo

第1步 - 配置话语

现在你已经安装了Discourse,我们需要将它配置为在Nginx后面工作。

警告:在我们配置Nginx之前,这将导致您的Discourse论坛停机。确保这是全新安装的Discourse或备份服务器,直到配置完成。

我们只需要将一个设置更改为Discourse,这样我们就可以将它移到Nginx之后。切换到包含配置文件的目录:

代码语言:javascript
复制
cd /var/discourse

然后,打开我们需要更改的配置文件:

代码语言:javascript
复制
sudo nano containers/app.yml

使用箭头键向下滚动到该expose部分(它应该在顶部附近)并更改此行上的第一个端口号:

代码语言:javascript
复制
...
## which TCP/IP ports should this container expose?
expose:
  - "25654:80"   # fwd host port 80   to container port 80 (http)
...

此号码可以是随机的,不应与他人共享。如果您愿意,您可以在您的服务器上启用防火墙,如果您使用的是腾讯云的CVM服务器,您可以直接在腾讯云控制台中的安全组进行设置。

现在保存并退出文本编辑器。

通过运行启用配置更改:

代码语言:javascript
复制
sudo ./launcher rebuild app

此步骤可能需要一段时间,请耐心等待。

您可以访问您的网站验证一切正常。Discourse(例如http://discourse.example.com)的域名将不再在Web浏览器中加载界面,但如果您使用刚为Discourse配置的端口,例如http:///discourse.example.com:25654

(将discourse.example.com替换为您的域名,并将25654替换为您刚刚在此步骤中使用的端口)。

第2步 - 安装和配置Nginx

现在Discourse已安装并配置为在Nginx后面工作,现在是安装Nginx的时候了。

要在Ubuntu上安装Nginx,只需输入此命令即可开始安装:

代码语言:javascript
复制
sudo apt-get install nginx

浏览到您的旧话语网址的URLhttp://discourse.example.com将显示默认的Nginx网页:

这可以。我们现在将此更改为您的论坛。首先,让我们停止Nginx:

代码语言:javascript
复制
sudo service nginx stop

然后,删除此默认网页配置 - 我们不需要它:

代码语言:javascript
复制
sudo rm /etc/nginx/sites-enabled/default

接下来,我们将为我们的Discourse服务器创建一个新的配置文件,我们将其命名discourse

代码语言:javascript
复制
sudo nano /etc/nginx/sites-enabled/discourse

复制并粘贴以下配置。用您的域名来替换discourse.example.com以及用您在上一步中使用的端口来替换25654

代码语言:javascript
复制
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;
        }
}

这是配置的作用:

  • 第一个服务器块正在端口80上侦听域discourse.example.com,并在端口443上将所有请求重定向到SSL。这是可选的,但它会强制所有用户在您的网站上使用SSL。
  • 第二个服务器块在端口443上,并将请求传递给在端口上运行的Web服务器25654(在本例中为Discourse)。这主要使用反向代理将Discourse页面发送给您的用户并通过SSL进行回传。

您可能已经注意到我们正在/etc/letsencrypt上引用一些证书。在下一步中,我们将在重新启动Nginx之前生成这些。

第3步 - 重新启动Nginx

最后,我们的配置应该是完整的。运行此命令重新启动Nginx:

代码语言:javascript
复制
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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 课程准备
  • 第1步 - 配置话语
  • 第2步 - 安装和配置Nginx
  • 第3步 - 重新启动Nginx
  • 结论
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档