diff --git a/translated/tech/20161115 Build Deploy and Manage Custom Apps with IBM Bluemix.md b/published/20161115 Build Deploy and Manage Custom Apps with IBM Bluemix.md
similarity index 57%
rename from translated/tech/20161115 Build Deploy and Manage Custom Apps with IBM Bluemix.md
rename to published/20161115 Build Deploy and Manage Custom Apps with IBM Bluemix.md
index 48841e1c33..8d09625b67 100644
--- a/translated/tech/20161115 Build Deploy and Manage Custom Apps with IBM Bluemix.md
+++ b/published/20161115 Build Deploy and Manage Custom Apps with IBM Bluemix.md
@@ -1,14 +1,14 @@
-使用IBM Bluemix构建,部署和管理自定义应用程序
+使用 IBM Bluemix 构建,部署和管理自定义应用程序
============================================================
-
![IBM Bluemix logo](http://i1.wp.com/opensourceforu.com/wp-content/uploads/2016/10/IBM-Blue-mix-logo.jpg?resize=300%2C266)
-IBM Bluemix 为开发人员提供了构建,部署和管理自定义应用程序的机会。Bluemix 建立在 Cloud Foundry 上。它支持多种编程语言,包括 IBM 的 OpenWhisk ,还允许开发人员无需资源管理就调用任何函数。
+IBM Bluemix 为开发人员提供了构建、部署和管理自定义应用程序的机会。Bluemix 建立在 Cloud Foundry 上。它支持多种编程语言,包括 IBM 的 OpenWhisk ,还允许开发人员无需资源管理就调用任何函数。
-Bluemix 是由 IBM 实现的开放标准的基于云的平台。它具有开放的架构,其允许组织能够在云上创建,开发和管理其应用程序。它基于 Cloud Foundry ,因此可以被视为平台即服务(PaaS)。使用 Bluemix,开发人员不必关心云端配置,可以专注于他们的应用程序。 云端配置将由 Bluemix 自动完成。
+Bluemix 是由 IBM 实现的基于开放标准的云平台。它具有开放的架构,其允许组织能够在云上创建、开发和管理其应用程序。它基于 Cloud Foundry ,因此可以被视为平台即服务(PaaS)。使用 Bluemix,开发人员不必关心云端配置,可以专注于他们的应用程序。 云端配置将由 Bluemix 自动完成。
Bluemix 还提供了一个仪表板,通过它,开发人员可以创建,管理和查看服务和应用程序,同时还可以监控资源使用情况。
+
它支持以下编程语言:
* Java
@@ -21,143 +21,132 @@ Bluemix 还提供了一个仪表板,通过它,开发人员可以创建,管
![图1 IBM Bluemix概述](http://i1.wp.com/opensourceforu.com/wp-content/uploads/2016/10/Figure-1-An-Overview-of-IBM-Bluemix.jpg?resize=296%2C307)
-图1 IBM Bluemix 概述
+*图1 IBM Bluemix 概述*
![图2 IBM Bluemix体系结构](http://i0.wp.com/opensourceforu.com/wp-content/uploads/2016/10/Figure-2-The-IBM-Bluemix-architecture.jpg?resize=350%2C239)
-图2 IBM Bluemix 体系结构
+*图2 IBM Bluemix 体系结构*
![图3 在IBM Bluemix 中创建组织](http://i0.wp.com/opensourceforu.com/wp-content/uploads/2016/10/Figure-3-Creating-an-organisation-in-IBM-Bluemix.jpg?resize=350%2C280)
-图3 在 IBM Bluemix 中创建组织
+*图3 在 IBM Bluemix 中创建组织*
-**IBM Bluemix 如何工作**
+### IBM Bluemix 如何工作
-Bluemix 构建在 IBM 的 SoftLayer IaaS(基础架构即服务)之上。它使用 Cloud Foundry 作为开源 PaaS 平台。一切起于通过 Cloud Foundry 来推送代码,它扮演着整合代码和根据编写应用所使用的编程语言所适配的运行时环境的角色。IBM 服务、第三方服务或社区构建的服务可用于不同的功能。安全连接器可用于连接本地系统到云。
+Bluemix 构建在 IBM 的 SoftLayer IaaS(基础架构即服务)之上。它使用 Cloud Foundry 作为开源 PaaS 平台。一切起于通过 Cloud Foundry 来推送代码,它扮演着将代码和编写应用所使用的编程语言运行时环境整合起来的角色。IBM 服务、第三方服务或社区构建的服务可用于不同的功能。安全连接器可用于将本地系统连接到云。
![图4 在IBM Bluemix中设置空间](http://i1.wp.com/opensourceforu.com/wp-content/uploads/2016/10/Figure-4-Setting-up-Space-in-IBM-Bluemix.jpg?resize=350%2C267)
-图4 在 IBM Bluemix 中设置空间
+*图4 在 IBM Bluemix 中设置空间*
![图5 应用程序模板](http://i2.wp.com/opensourceforu.com/wp-content/uploads/2016/10/Figure-5-The-app-template.jpg?resize=350%2C135)
-图5 应用程序模板
+*图5 应用程序模板*
![图6 IBM Bluemix支持的编程语言](http://i1.wp.com/opensourceforu.com/wp-content/uploads/2016/10/Figure-6-IBM-Bluemix-supported-programming-languages.jpg?resize=350%2C173)
-图6 IBM Bluemix 支持的编程语言
+*图6 IBM Bluemix 支持的编程语言*
+
+### 在 Bluemix 中创建应用程序
-**在 Bluemix 中创建应用程序**
在本文中,我们将使用 Liberty for Java 的入门包在 IBM Bluemix 中创建一个示例“Hello World”应用程序,只需几个简单的步骤。
-1. 打开 [_https://console.ng.bluemix.net/registration/_][2]
+1、 打开 [https://console.ng.bluemix.net/registration/][2]
-2. 注册 Bluemix 帐户
+2、 注册 Bluemix 帐户
-3. 点击邮件中的确认链接完成注册过程
+3、 点击邮件中的确认链接完成注册过程
-4. 输入您的电子邮件 ID,然后点击 _Continue_ 进行登录
+4、 输入您的电子邮件 ID,然后点击 Continue 进行登录
-5. 输入密码并点击 _Log in_
+5、 输入密码并点击 Log in
-6. 进入 _Set up_ -> _Environment_ 设置特定区域中的资源共享
+6、 进入 Set up -> Environment 设置特定区域中的资源共享
-7. 创建空间方便管理访问控制和在 Bluemix 中回滚操作。 我们可以将空间映射到多个开发阶段,如 dev, test,uat,pre-prod 和 prod
+7、 创建空间方便管理访问控制和在 Bluemix 中回滚操作。 我们可以将空间映射到多个开发阶段,如 dev, test,uat,pre-prod 和 prod
![图7 命名应用程序](http://i1.wp.com/opensourceforu.com/wp-content/uploads/2016/10/Figure-7-Naming-the-app.jpg?resize=350%2C133)
-图7 命名应用程序
+*图7 命名应用程序*
![图8 了解应用程序何时准备就绪](http://i1.wp.com/opensourceforu.com/wp-content/uploads/2016/10/Figure-8-Knowing-when-the-app-is-ready.jpg?resize=350%2C170)
-图8 了解应用程序何时准备就绪
+*图8 了解应用程序何时准备就绪*
![图9 IBM Bluemix Java应用程序](http://i1.wp.com/opensourceforu.com/wp-content/uploads/2016/10/Figure-9-The-IBM-Bluemix-Java-App.jpg?resize=350%2C151)
-图9 IBM Bluemix Java 应用程序
+*图9 IBM Bluemix Java 应用程序*
-8. 完成初始配置后,单击 _I'm ready_ -> _Good to Go_ !
+8、 完成初始配置后,单击 I'm ready -> Good to Go !
-9. 成功登录后,此时检查 IBM Bluemix 仪表板,特别是 Cloud Foundry Apps(其中2GB可用)和 Virtual Server(其中0个实例可用)的部分
+9、 成功登录后,此时检查 IBM Bluemix 仪表板,特别是 Cloud Foundry Apps(其中 2GB 可用)和 Virtual Server(其中 0 个实例可用)的部分
-10. 点击 _Create app_,选择应用创建模板。在我们的例子中,我们将使用一个 Web 应用程序
+10、 点击 Create app,选择应用创建模板。在我们的例子中,我们将使用一个 Web 应用程序
-11. 如何开始?单击 Liberty for Java ,然后查看其描述
+11、 如何开始?单击 Liberty for Java ,然后查看其描述
-12. 单击 _Continue_
+12、 单击 Continue
-13. 为新应用命名。对于本文,让我们使用 osfy-bluemix-tutorial 命名然后单击 _Finish_
+13、 为新应用命名。对于本文,让我们使用 osfy-bluemix-tutorial 命名然后单击 Finish
-14. 在 Bluemix 上创建资源和托管应用程序需要等待一些时间。
+14、 在 Bluemix 上创建资源和托管应用程序需要等待一些时间
-15. 几分钟后,应用程式就会开始运作。注意应用程序的URL。
+15、 几分钟后,应用程式就会开始运作。注意应用程序的URL
-16. 访问应用程序的URL _http://osfy-bluemix-tutorial.au-syd.mybluemix.net/_, Bingo,我们的第一个在 IBM Bluemix 上的 Java 应用程序成功运行。
+16、 访问应用程序的URL http://osfy-bluemix-tutorial.au-syd.mybluemix.net/, 不错,我们的第一个在 IBM Bluemix 上的 Java 应用程序成功运行
-17. 为了检查源代码,请单击 _Files_ 并在门户中导航到不同文件和文件夹
+17、 为了检查源代码,请单击 Files 并在门户中导航到不同文件和文件夹
-18. _Logs_ 部分提供包括从应用程序的创建时起的所有活动日志。
+18、 Logs 部分提供包括从应用程序的创建时起的所有活动日志。
-19. _Environment Variables_ 部分提供关于 VCAP_Services 的所有环境变量以及用户定义的环境变量的详细信息
+19、 Environment Variables 部分提供关于 VCAP\_Services 的所有环境变量以及用户定义的环境变量的详细信息
-20. 要检查应用程序的资源消耗,需要到 Liberty for Java 那一部分。
+20、 要检查应用程序的资源消耗,需要到 Liberty for Java 那一部分。
-21. 默认情况下,每个应用程序的 _Overview_ 部分包含资源,应用程序的运行状况和活动日志的详细信息
+21、 默认情况下,每个应用程序的 Overview 部分包含资源,应用程序的运行状况和活动日志的详细信息
-22. 打开 Eclipse,转到帮助菜单,然后单击 _Eclipse Marketplace_
+22、 打开 Eclipse,转到帮助菜单,然后单击 _Eclipse Marketplace_
-23. 查找 _IBM Eclipse tools for Bluemix_ 并单击 _Install_
+23、 查找 IBM Eclipse tools for Bluemix 并单击 Install
-24. 确认所选的功能并将其安装在 Eclipse 中
+24、 确认所选的功能并将其安装在 Eclipse 中
-25. 下载应用程序启动器代码。点击 _File Menu_,将它导入到 Eclipse 中,选择 _Import Existing Projects_ -> _Workspace_, 然后开始修改代码
+25、 下载应用程序启动器代码。点击 File Menu,将它导入到 Eclipse 中,选择 Import Existing Projects -> Workspace, 然后开始修改代码
![图10 Java应用程序源文件](http://i1.wp.com/opensourceforu.com/wp-content/uploads/2016/10/Figure-10-The-Java-app-source-files.jpg?resize=350%2C173)
-图10 Java 应用程序源文件
+*图10 Java 应用程序源文件*
![图11 Java应用程序日志](http://i1.wp.com/opensourceforu.com/wp-content/uploads/2016/10/Figure-11-The-Java-app-logs.jpg?resize=350%2C133)
-图11 Java 应用程序日志
+*图11 Java 应用程序日志*
![图12 Java应用程序 - Liberty for Java](http://i0.wp.com/opensourceforu.com/wp-content/uploads/2016/10/Figure-12-Java-app-Liberty-for-Java.jpg?resize=350%2C169)
-图12 Java 应用程序 - Liberty for Java
+*图12 Java 应用程序 - Liberty for Java*
+
+### 为什么选择 IBM Bluemix?
-**为什么选择 IBM Bluemix?**
以下是使用 IBM Bluemix 的一些令人信服的理由:
* 支持多种语言和平台
* 免费试用
-
1. 简化的注册过程
-
2. 不需要信用卡
-
3. 30 天试用期 - 配额 2GB 的运行时,支持 20 个服务,500 个 route
-
4. 无限制地访问标准支持
-
5. 没有生产使用限制
-
* 仅为每个使用的运行时和服务付费
* 快速设置 - 从而加快上架时间
* 持续交付新功能
* 与本地资源的安全集成
* 用例
-
1. Web 应用程序和移动后端
-
2. API 和内部集成
-
* DevOps 服务可部署在云上的 SaaS ,并支持持续交付:
-
1. Web IDE
-
2. SCM
-
3. 敏捷规划
-
4. 交货管道服务
--------------------------------------------------------------------------------
diff --git a/translated/tech/20170116 Using the AWS SDK for Gos Regions and Endpoints Metadata.md b/published/20170116 Using the AWS SDK for Gos Regions and Endpoints Metadata.md
similarity index 52%
rename from translated/tech/20170116 Using the AWS SDK for Gos Regions and Endpoints Metadata.md
rename to published/20170116 Using the AWS SDK for Gos Regions and Endpoints Metadata.md
index aa7564e8e3..7805a6d6a1 100644
--- a/translated/tech/20170116 Using the AWS SDK for Gos Regions and Endpoints Metadata.md
+++ b/published/20170116 Using the AWS SDK for Gos Regions and Endpoints Metadata.md
@@ -1,20 +1,17 @@
-使用AWS的GO SDK获取区域与终端节点信息
+使用 AWS 的 GO SDK 获取区域与终端节点信息
============================================================
-
+LCTT 译注: 终端节点(Endpoint),详情请见: [http://docs.amazonaws.cn/general/latest/gr/rande.html](http://docs.amazonaws.cn/general/latest/gr/rande.html)
-译注: Endpoint(终端节点)[详情请见: http://docs.amazonaws.cn/general/latest/gr/rande.html](http://docs.amazonaws.cn/general/latest/gr/rande.html)
+最新发布的 GO 的 SDK [v1.6.0][1] 版本,加入了获取区域与终端节点信息的功能。它可以很方便地列出区域、服务和终端节点的相关信息。可以通过 [github.com/aws/aws-sdk-go/aws/endpoints][3] 包使用这些功能。
-最新发布的GO的SDK[v1.6.0][1]版本, 加入了获取区域与终端节点信息的功能. 它可以很方便地列出区域, 服务 和终端节点的相关信息.可以通过[github.com/aws/aws-sdk-go/aws/endpoints][3]包使用这些功能.
-
-endpoints包提供了一个易用的接口,可以获取到一个服务的终端节点的url列表和区域列表信息.并且我们将相关信息根据AWS服务区域进行了分组,如 AWS 标准, AWS 中国, and AWS GovCloud (美国).
+endpoints 包提供了一个易用的接口,可以获取到一个服务的终端节点的 url 列表和区域列表信息。并且我们将相关信息根据 AWS 服务区域进行了分组,如 AWS 标准、AWS 中国和 AWS GovCloud(美国)。
### 解析终端节点
-设置SDK的默认配置时, SDK会自动地使用endpoints.DefaultResolver函数. 你也可以自己调用包中的EndpointFor方法来解析终端节点.
+设置 SDK 的默认配置时, SDK 会自动地使用 `endpoints.DefaultResolver` 函数。你也可以自己调用包中的`EndpointFor` 方法来解析终端节点。
-Go
-```
+```Go
// 解析在us-west-2区域的S3服务的终端节点
resolver := endpoints.DefaultResolver()
endpoint, err := resolver.EndpointFor(endpoints.S3ServiceID, endpoints.UsWest2RegionID)
@@ -26,12 +23,12 @@ if err != nil {
fmt.Println("Resolved URL:", endpoint.URL)
```
-如果你需要自定义终端节点的解析逻辑,你可以实现endpoints.Resolver接口, 并传值给aws.Config.EndpointResolver. 当你打算编写自定义的终端节点逻辑,让sdk可以用来解析服务的终端节点时候,这个功能就会很有用.
+如果你需要自定义终端节点的解析逻辑,你可以实现 `endpoints.Resolver` 接口,并传值给`aws.Config.EndpointResolver`。当你打算编写自定义的终端节点逻辑,让 SDK 可以用来解析服务的终端节点时候,这个功能就会很有用。
-以下示例, 创建了一个配置好的Session, 然后[Amazon S3][4]服务的客服端就可以使用这个自定义的终端节点.
+以下示例,创建了一个配置好的 Session,然后 [Amazon S3][4] 服务的客户端就可以使用这个自定义的终端节点。
-Go
-```
+
+```Go
s3CustResolverFn := func(service, region string, optFns ...func(*endpoints.Options)) (endpoints.ResolvedEndpoint, error) {
if service == "s3" {
return endpoints.ResolvedEndpoint{
@@ -52,10 +49,9 @@ sess := session.Must(session.NewSessionWithOptions(session.Options{
### 分区
-endpoints.DefaultResolver函数的返回值可以被endpoints.EnumPartitions接口使用.这样就可以获取SDK使用的分区片段,也可以列出每个分区的分区信息。
+`endpoints.DefaultResolver` 函数的返回值可以被 `endpoints.EnumPartitions`接口使用。这样就可以获取 SDK 使用的分区片段,也可以列出每个分区的分区信息。
-Go
-```
+```Go
// 迭代所有分区表打印每个分区的ID
resolver := endpoints.DefaultResolver()
partitions := resolver.(endpoints.EnumPartitions).Partitions()
@@ -65,10 +61,9 @@ for _, p := range partitions {
}
```
-除了分区表之外, endpoints包也提供了每个分区组的getter函数. 这些工具函数可以方便列出指定分区,而不用执行默认解析器列出所有的分区.
+除了分区表之外,endpoints 包也提供了每个分区组的 getter 函数。这些工具函数可以方便列出指定分区,而不用执行默认解析器列出所有的分区。
-Go
-```
+```Go
partition := endpoints.AwsPartition()
region := partition.Regions()[endpoints.UsWest2RegionID]
@@ -78,19 +73,18 @@ for id, _ := range region.Services() {
}
```
-当你获取区域和服务值后, 可以调用ResolveEndpoint. 这样解析端点时,就可以提供分区的过滤视图.
+当你获取区域和服务值后,可以调用 `ResolveEndpoint`。这样解析端点时,就可以提供分区的过滤视图。
-获取更多AWS SDK for GO信息, 请关注[开源库][5]. 若你有更好的看法,请留言评论.
+获取更多 AWS SDK for GO 信息, 请关注[其开源仓库][5]。若你有更好的看法,请留言评论。
-
--------------------------------------------------------------------------------
via: https://aws.amazon.com/cn/blogs/developer/using-the-aws-sdk-for-gos-regions-and-endpoints-metadata
-作者:[ Jason Del Ponte][a]
+作者:[Jason Del Ponte][a]
译者:[Vic020](http://vicyu.com)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
diff --git a/translated/tech/20170205 Hosting Django With Nginx and Gunicorn on Linux.md b/published/20170205 Hosting Django With Nginx and Gunicorn on Linux.md
similarity index 55%
rename from translated/tech/20170205 Hosting Django With Nginx and Gunicorn on Linux.md
rename to published/20170205 Hosting Django With Nginx and Gunicorn on Linux.md
index 78252b4247..d469afb651 100644
--- a/translated/tech/20170205 Hosting Django With Nginx and Gunicorn on Linux.md
+++ b/published/20170205 Hosting Django With Nginx and Gunicorn on Linux.md
@@ -1,38 +1,30 @@
-### 在Linux上使用Nginx和Gunicorn托管Django
+在 Linux 上使用 Nginx 和 Gunicorn 托管 Django 应用
+==========
![](https://linuxconfig.org/images/gunicorn_logo.png?58963dfd)
-内容
-
-* * [1. 介绍][4]
- * [2. Gunicorn][5]
- * [2.1. 安装][1]
- * [2.2. 配置][2]
- * [2.3. 运行][3]
- * [3. Nginx][6]
- * [4. 结语][7]
### 介绍
-托管Django Web应用程序相当简单,虽然它比标准的PHP应用程序更复杂一些。 处理带Web服务器的Django接口的方法有很多。 Gunicorn就是其中最简单的一个。
+托管 Django Web 应用程序相当简单,虽然它比标准的 PHP 应用程序更复杂一些。 让 Web 服务器对接 Django 的方法有很多。 Gunicorn 就是其中最简单的一个。
-Gunicorn(Green Unicorn的缩写)在你的Web服务器Django之间作为中间服务器使用,在这里,Web服务器就是Nginx。 Gunicorn服务于应用程序,而Nginx处理静态内容。
+Gunicorn(Green Unicorn 的缩写)在你的 Web 服务器 Django 之间作为中间服务器使用,在这里,Web 服务器就是 Nginx。 Gunicorn 服务于应用程序,而 Nginx 处理静态内容。
### Gunicorn
-### 安装
+#### 安装
-使用Pip安装Gunicorn是超级简单的。 如果你已经使用virtualenv搭建好了你的Django项目,那么你就有了Pip,并且应该熟悉Pip的工作方式。 所以,在你的virtualenv中安装Gunicorn。
+使用 Pip 安装 Gunicorn 是超级简单的。 如果你已经使用 virtualenv 搭建好了你的 Django 项目,那么你就有了 Pip,并且应该熟悉 Pip 的工作方式。 所以,在你的 virtualenv 中安装 Gunicorn。
```
$ pip install gunicorn
```
-### 配置
+#### 配置
-Gunicorn 最有吸引力的一个地方就是它的配置非常简单。处理配置最好的方法就是在Django项目的根目录下创建一个名叫Gunicorn的文件夹。然后 在该文件夹内,创建一个配置文件。
+Gunicorn 最有吸引力的一个地方就是它的配置非常简单。处理配置最好的方法就是在 Django 项目的根目录下创建一个名叫 `Gunicorn` 的文件夹。然后在该文件夹内,创建一个配置文件。
-在本篇教程中,配置文件名称是`gunicorn-conf.py`。在改文件中,创建类似于下面的配置
+在本篇教程中,配置文件名称是 `gunicorn-conf.py`。在该文件中,创建类似于下面的配置:
```
import multiprocessing
@@ -42,25 +34,27 @@ workers = multiprocessing.cpu_count() * 2 + 1
reload = True
daemon = True
```
-在上述配置的情况下,Gunicorn会在`/tmp/`目录下创建一个名为`gunicorn1.sock`的Unix套接字。 还会启动一些工作进程,进程数量相当于CPU内核数量的2倍。 它还会自动重新加载并作为守护进程运行。
-### 运行
+在上述配置的情况下,Gunicorn 会在 `/tmp/` 目录下创建一个名为 `gunicorn1.sock` 的 Unix 套接字。 还会启动一些工作进程,进程数量相当于 CPU 内核数量的 2 倍。 它还会自动重新加载并作为守护进程运行。
-Gunicorn的运行命令有点长,指定了一些附加的配置项。 最重要的部分是将Gunicorn指向你项目的`.wsgi`文件。
+#### 运行
+
+Gunicorn 的运行命令有点长,指定了一些附加的配置项。 最重要的部分是将 Gunicorn 指向你项目的 `.wsgi` 文件。
```
gunicorn -c gunicorn/gunicorn-conf.py -D --error-logfile gunicorn/error.log yourproject.wsgi
```
-上面的命令应该从项目的根目录运行。 Gunicorn会使用你用`-c`选项创建的配置。 `-D`再次指定gunicorn为守护进程。 最后一部分指定Gunicorn的错误日志文件在`Gunicorn`文件夹中的位置。 命令结束部分就是为Gunicorn指定`.wsgi`file的位置。
+
+上面的命令应该从项目的根目录运行。 `-c` 选项告诉 Gunicorn 使用你创建的配置文件。 `-D` 再次指定 gunicorn 为守护进程。 最后一部分指定 Gunicorn 的错误日志文件在你创建 `Gunicorn` 文件夹中的位置。 命令结束部分就是为 Gunicorn 指定 `.wsgi` 文件的位置。
### Nginx
-现在Gunicorn配置好了并且已经开始运行了,你可以设置Nginx连接它,为你的静态文件提供服务。 本指南假定你已经配置了Nginx,而且你通过它托管的站点使用了单独的服务块。 它还将包括一些SSL信息。
+现在 Gunicorn 配置好了并且已经开始运行了,你可以设置 Nginx 连接它,为你的静态文件提供服务。 本指南假定你已经配置好了 Nginx,而且你通过它托管的站点使用了单独的 server 块。 它还将包括一些 SSL 信息。
-如果你想知道如何让你的网站获得免费的SSL证书,请查看我们的[LetsEncrypt指南][8]。
+如果你想知道如何让你的网站获得免费的 SSL 证书,请查看我们的 [Let'sEncrypt 指南][8]。
```nginx
-# 连接到Gunicorn
+# 连接到 Gunicorn
upstream yourproject-gunicorn {
server unix:/tmp/gunicorn1.sock fail_timeout=0;
}
@@ -83,7 +77,7 @@ server {
access_log /var/log/nginx/yourwebsite.access_log main;
error_log /var/log/nginx/yourwebsite.error_log info;
- # 将nginx指向你的ssl证书
+ # 告诉 nginx 你的 ssl 证书
ssl on;
ssl_certificate /etc/letsencrypt/live/yourwebsite.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourwebsite.com/privkey.pem;
@@ -91,7 +85,7 @@ server {
# 设置根目录
root /var/www/yourvirtualenv/yourproject;
- # 为Nginx指定静态文件路径
+ # 为 Nginx 指定静态文件路径
location /static/ {
# Autoindex the files to make them browsable if you want
autoindex on;
@@ -104,7 +98,7 @@ server {
proxy_ignore_headers "Set-Cookie";
}
- # 为Nginx指定你上传文件的路径
+ # 为 Nginx 指定你上传文件的路径
location /media/ {
Autoindex if you want
autoindex on;
@@ -122,7 +116,7 @@ server {
try_files $uri @proxy_to_app;
}
- # 将请求传递给Gunicorn
+ # 将请求传递给 Gunicorn
location @proxy_to_app {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
@@ -130,7 +124,7 @@ server {
proxy_pass http://njc-gunicorn;
}
- # 缓存HTML,XML和JSON
+ # 缓存 HTML、XML 和 JSON
location ~* \.(html?|xml|json)$ {
expires 1h;
}
@@ -144,18 +138,19 @@ server {
}
}
```
-配置文件有点长,但是还可以更长一些。其中重点是指向 Gunicorn 的`upstream`块以及将流量传递给 Gunicorn 的`location`块。大多数其他的配置项都是可选,但是你应该按照一定的形式来配置。配置中的注释应该可以帮助你了解具体细节。
+配置文件有点长,但是还可以更长一些。其中重点是指向 Gunicorn 的 `upstream` 块以及将流量传递给 Gunicorn 的 `location` 块。大多数其他的配置项都是可选,但是你应该按照一定的形式来配置。配置中的注释应该可以帮助你了解具体细节。
-保存文件之后,你可以重启Nginx,让修改的配置生效。
+保存文件之后,你可以重启 Nginx,让修改的配置生效。
```
# systemctl restart nginx
```
-一旦Nginx在线生效,你的站点就可以通过域名访问了。
+
+一旦 Nginx 在线生效,你的站点就可以通过域名访问了。
### 结语
-如果你想深入研究,Nginx可以做很多事情。但是,上面提供的配置是一个很好的开始,并且你可以用于实践中。 如果你习惯于Apache和臃肿的PHP应用程序,像这样的服务器配置的速度应该是一个惊喜。
+如果你想深入研究,Nginx 可以做很多事情。但是,上面提供的配置是一个很好的开始,并且你可以用于实践中。 如果你见惯了 Apache 和臃肿的 PHP 应用程序,像这样的服务器配置的速度应该是一个惊喜。
--------------------------------------------------------------------------------
@@ -163,7 +158,7 @@ via: https://linuxconfig.org/hosting-django-with-nginx-and-gunicorn-on-linux
作者:[Nick Congleton][a]
译者:[Flowsnow](https://github.com/Flowsnow)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
diff --git a/translated/tech/20170222 Create a Shared Directory on Samba AD DC and Map to WindowsLinux Clients – Part 7.md b/published/20170222 Create a Shared Directory on Samba AD DC and Map to WindowsLinux Clients – Part 7.md
similarity index 73%
rename from translated/tech/20170222 Create a Shared Directory on Samba AD DC and Map to WindowsLinux Clients – Part 7.md
rename to published/20170222 Create a Shared Directory on Samba AD DC and Map to WindowsLinux Clients – Part 7.md
index c66900dccf..3c7a8d833f 100644
--- a/translated/tech/20170222 Create a Shared Directory on Samba AD DC and Map to WindowsLinux Clients – Part 7.md
+++ b/published/20170222 Create a Shared Directory on Samba AD DC and Map to WindowsLinux Clients – Part 7.md
@@ -1,14 +1,13 @@
-Create a Shared Directory on Samba AD DC and Map to Windows/Linux Clients – Part 7
+Samba 系列(七):在 Samba AD DC 服务器上创建共享目录并映射到 Windows/Linux 客户机
============================================================
-在 Samba AD DC 服务器上创建共享目录并映射到 Windows/Linux 客户机 ——(七)
这篇文章将指导你如何在 Samba AD DC 服务器上创建共享目录,然后通过 GPO 把共享目录挂载到域中的其它 Windows 成员机,并且从 Windows 域控的角度来管理共享权限。
这篇文章也包括在加入域的 Linux 机器上如何使用 Samba4 域帐号来访问及挂载共享文件。
-#### 需求:
+### 需求:
-1. [在 Ubuntu 系统上使用 Samba4 创建活动目录架构][1]
+1. [在 Ubuntu 系统上使用 Samba4 创建活动目录架构][1]
### 第一步:创建 Samba 文件共享
@@ -21,12 +20,13 @@ Create a Shared Directory on Samba AD DC and Map to Windows/Linux Clients – Pa
# chmod -R 775 /nas
# chown -R root:"domain users" /nas
# ls -alh | grep nas
-```
+```
+
[
- ![Create Samba Shared Directory](http://www.tecmint.com/wp-content/plugins/lazy-load/images/1x1.trans.gif)
+ ![Create Samba Shared Directory](http://www.tecmint.com/wp-content/uploads/2017/02/Create-Samba-Shared-Directory.png)
][2]
-创建 Samba 共享目录
+*创建 Samba 共享目录*
2、当你在 Samba4 AD DC 服务器上创建完成共享目录之后,你还得修改 samba 配置文件,添加下面的参数以允许通过 SMB 协议来共享文件。
@@ -41,11 +41,12 @@ Create a Shared Directory on Samba AD DC and Map to Windows/Linux Clients – Pa
path = /nas
read only = no
```
+
[
- ![Configure Samba Shared Directory](http://www.tecmint.com/wp-content/plugins/lazy-load/images/1x1.trans.gif)
+ ![Configure Samba Shared Directory](http://www.tecmint.com/wp-content/uploads/2017/02/Configure-Samba-Shared-Directory.png)
][3]
-配置 Samba 共享目录
+*配置 Samba 共享目录*
3、最后,你需要通过下面的命令重启 Samba AD DC 服务,以让修改的配置生效:
@@ -57,117 +58,119 @@ read only = no
4、我们准备使用在 Samba AD DC 服务器上创建的域帐号(包括用户和组)来访问这个共享目录(禁止 Linux 系统用户访问共享目录)。
-可以直接通过 Windows 资源管理器来完成 Samba 共享权限的管理,就跟你在 Windows 资源管理器中设置其它文件夹权限的方法一样。
+可以直接通过 Windows 资源管理器来完成 Samba 共享权限的管理,就跟你在 Windows 资源管理器中设置其它文件夹权限的方法一样。
首先,使用具有管理员权限的 Samba4 AD 域帐号登录到 Windows 机器。然而在 Windows 机器上的资源管理器中输入双斜杠和 Samba AD DC 服务器的 IP 地址或主机名或者是 FQDN 来访问共享文件和设置权限。
```
\\adc1
-Or
+或
\\192.168.1.254
-Or
+或
\\adc1.tecmint.lan
-```
+```
+
[
- ![Access Samba Share Directory from Windows](http://www.tecmint.com/wp-content/plugins/lazy-load/images/1x1.trans.gif)
+ ![Access Samba Share Directory from Windows](http://www.tecmint.com/wp-content/uploads/2017/02/Access-Samba-Share-Directory-from-Windows.png)
][4]
-从 Windows 机器访问 Samba 共享目录
+*从 Windows 机器访问 Samba 共享目录*
5、右键单击共享文件,选择属性来设置权限。打开安全选项卡,依次修改域账号和组权限。使用高级选项来调整权限。
[
- ![Configure Samba Share Directory Permissions](http://www.tecmint.com/wp-content/plugins/lazy-load/images/1x1.trans.gif)
+ ![Configure Samba Share Directory Permissions](http://www.tecmint.com/wp-content/uploads/2017/02/Configure-Samba-Share-Directory-Permissions.png)
][5]
-配置 Samba 共享目录权限
+*配置 Samba 共享目录权限*
-可参考下面的截图来为指定 Samba AD DC 认证用户设置权限。
+可参考下面的截图来为指定 Samba AD DC 认证用户设置权限。
[
- ![Manage Samba Share Directory User Permissions](http://www.tecmint.com/wp-content/plugins/lazy-load/images/1x1.trans.gif)
+ ![Manage Samba Share Directory User Permissions](http://www.tecmint.com/wp-content/uploads/2017/02/Manage-Samba-Share-Directory-User-Permissions.png)
][6]
-设置 Samba 共享目录用户权限
+*设置 Samba 共享目录用户权限*
6、你也可以使用其它方法来设置共享权限,打开计算机管理-->连接到另外一台计算机。
找到共享目录,右键单击你想修改权限的目录,选择属性,打开安全选项卡。你可以在这里修改任何权限,就跟上图的修改共享文件夹权限的方法一样。
[
- ![Connect to Samba Share Directory Machine](http://www.tecmint.com/wp-content/plugins/lazy-load/images/1x1.trans.gif)
+ ![Connect to Samba Share Directory Machine](http://www.tecmint.com/wp-content/uploads/2017/02/Connect-to-Samba-Share-Directory-Machine.png)
][7]
-连接到 Samba 共享目录服务器
+*连接到 Samba 共享目录服务器*
[
- ![Manage Samba Share Directory Properties](http://www.tecmint.com/wp-content/plugins/lazy-load/images/1x1.trans.gif)
+ ![Manage Samba Share Directory Properties](http://www.tecmint.com/wp-content/uploads/2017/02/Manage-Samba-Share-Directory-Properties.png)
][8]
-管理 Samba 共享目录属性
+*管理 Samba 共享目录属性*
[
- ![Assign Samba Share Directory Permissions to Users](http://www.tecmint.com/wp-content/plugins/lazy-load/images/1x1.trans.gif)
+ ![Assign Samba Share Directory Permissions to Users](http://www.tecmint.com/wp-content/uploads/2017/02/Assign-Samba-Share-Directory-Permissions-to-Users.png)
][9]
-为域用户授予共享目录权限
+*为域用户授予共享目录权限*
### 第三步:通过 GPO 来映射 Samba 文件共享
-7、要想通过域组策略来挂载 Samba 共享的目录,你得先到一台[已安装了 RSAT 工具][10] 的服务器上,打开 AD DC 工具,右键单击域名,选择新建-->共享文件平。
+7、要想通过域组策略来挂载 Samba 共享的目录,你得先到一台[已安装了 RSAT 工具][10] 的服务器上,打开 AD DC 工具,右键单击域名,选择新建-->共享文件夹。
[
- ![Map Samba Share Folder](http://www.tecmint.com/wp-content/plugins/lazy-load/images/1x1.trans.gif)
+ ![Map Samba Share Folder](http://www.tecmint.com/wp-content/uploads/2017/02/Map-Samba-Share-Folder.png)
][11]
-映射 Samba 共享文件夹
+*映射 Samba 共享文件夹*
8、为共享文件夹添加一个名字,然后输入共享文件夹的网络路径,如下图所示。完成后单击 OK 按钮,你就可以在右侧看到文件夹了。
[
- ![Set Samba Shared Folder Name Location](http://www.tecmint.com/wp-content/plugins/lazy-load/images/1x1.trans.gif)
+ ![Set Samba Shared Folder Name Location](http://www.tecmint.com/wp-content/uploads/2017/02/Set-Samba-Shared-Folder-Name-Location.png)
][12]
-设置 Samba 共享文件夹名称及路径
+*设置 Samba 共享文件夹名称及路径*
9、下一步,打开组策略管理控制台,找到当前域的默认域策略脚本,然后打开并编辑该文件。
在 GPM 编辑器界面,打开 GPM 编辑器,找到用户配置 --> 首选项 --> Windows 设置,然而右键单击驱动器映射,选择新建 --> 映射驱动。
[
- ![Map Samba Share Folder in Windows](http://www.tecmint.com/wp-content/plugins/lazy-load/images/1x1.trans.gif)
+ ![Map Samba Share Folder in Windows](http://www.tecmint.com/wp-content/uploads/2017/02/Map-Samba-Share-Folder-in-Windows.png)
][13]
-在 Windows 机器上映射 Samba 共享文件夹
+*在 Windows 机器上映射 Samba 共享文件夹*
10、通过单击右边的三个小点,在新窗口中查询并添加共享目录的网络位置,勾选重新连接复选框,为该目录添加一个标签,选择驱动盘符,然后单击 OK 按钮来保存和应用配置。
[
- ![Configure Network Location for Samba Share Directory](http://www.tecmint.com/wp-content/plugins/lazy-load/images/1x1.trans.gif)
+ ![Configure Network Location for Samba Share Directory](http://www.tecmint.com/wp-content/uploads/2017/02/Configure-Network-Location-for-Samba-Share-Directory.png)
][14]
-配置 Samba 共享目录的网络位置
+*配置 Samba 共享目录的网络位置*
11、最后,为了在本地机器上强制应用 GPO 更改而不重启系统,打开命令行提示符,然而执行下面的命令。
```
gpupdate /force
-```
+```
+
[
- ![Apply GPO Changes](http://www.tecmint.com/wp-content/plugins/lazy-load/images/1x1.trans.gif)
+ ![Apply GPO Changes](http://www.tecmint.com/wp-content/uploads/2017/02/Apply-GPO-Changes.png)
][15]
-应用 GPO 更改
+*应用 GPO 更改*
12、当你在本地机器上成功应用策略后,打开 Windows 资源管理器,你就可以看到并访问共享的网络文件夹了,能否正常访问共享目录取决于你在前一步的授权操作。
如果没有在命令行下强制应用组策略,你网络中的其它客户机需要重启或重新登录系统才可以看到共享目录。
[
- ![Samba Shared Network Volume on Windows](http://www.tecmint.com/wp-content/plugins/lazy-load/images/1x1.trans.gif)
+ ![Samba Shared Network Volume on Windows](http://www.tecmint.com/wp-content/uploads/2017/02/Samba-Shared-Network-Volume-on-Windows.png)
][16]
-Windows 机器上挂载的 Samba 网络磁盘
+*Windows 机器上挂载的 Samba 网络磁盘*
### 第四步:从 Linux 客户端访问 Samba 共享目录
@@ -183,14 +186,15 @@ $ sudo apt-get install smbclient cifs-utils
```
$ smbclient –L your_domain_controller –U%
-or
+或
$ smbclient –L \\adc1 –U%
-```
+```
+
[
- ![List Samba Share Directory in Linux](http://www.tecmint.com/wp-content/plugins/lazy-load/images/1x1.trans.gif)
+ ![List Samba Share Directory in Linux](http://www.tecmint.com/wp-content/uploads/2017/02/List-Samba-Share-Directory-in-Linux.png)
][17]
-在 Linux 机器上列出 Samba 共享目录
+*在 Linux 机器上列出 Samba 共享目录*
15、在命令行下使用域帐号以交互试方式连接到 Samba 共享目录:
@@ -198,13 +202,13 @@ $ smbclient –L \\adc1 –U%
$ sudo smbclient //adc/share_name -U domain_user
```
-在命令行下,你可以列出共享目录内容,下载或上传文件到共享目录,或者执行其它操作。使用 ? 来查询所有可用的 smbclient 命令。
+在命令行下,你可以列出共享目录内容,下载或上传文件到共享目录,或者执行其它操作。使用 `?` 来查询所有可用的 smbclient 命令。
[
- ![Connect Samba Share Directory in Linux](http://www.tecmint.com/wp-content/plugins/lazy-load/images/1x1.trans.gif)
+ ![Connect Samba Share Directory in Linux](http://www.tecmint.com/wp-content/uploads/2017/02/Connect-Samba-Share-Directory-in-Linux.png)
][18]
-在 Linux 机器上连接 Samba 共享目录
+*在 Linux 机器上连接 Samba 共享目录*
16、在 Linux 机器上使用下面的命令来挂载 samba 共享目录。
@@ -212,16 +216,16 @@ $ sudo smbclient //adc/share_name -U domain_user
$ sudo mount //adc/share_name /mnt -o username=domain_user
```
[
- ![Mount Samba Share Directory in Linux](http://www.tecmint.com/wp-content/plugins/lazy-load/images/1x1.trans.gif)
+ ![Mount Samba Share Directory in Linux](http://www.tecmint.com/wp-content/uploads/2017/02/Mount-Samba-Share-Directory-in-Linux.png)
][19]
-在 Linux 机器上挂载 samba 共享目录
+*在 Linux 机器上挂载 samba 共享目录*
-根据实际情况,依次替换主机名、共享目录名、挂载点和域帐号。使用 mount 命令加上管道符和 grep 参数来过滤出 cifs 类型的文件系统。
+根据实际情况,依次替换主机名、共享目录名、挂载点和域帐号。使用 `mount` 命令加上管道符和 `grep` 命令来过滤出 cifs 类型的文件系统。
通过上面的测试,我们可以看出,在 Samba4 AD DC 服务器上配置共享目录仅使用 Windows 访问控制列表( ACL ),而不是 POSIX ACL 。
-通过文件共享把 Samba 配置为域成员以使用其它网络共享功能。同时,在另一个域控制器上[配置 Windbindd 服务][20] ——第二步——在你开始发起网络共享文件之前。
+通过文件共享把 Samba 配置为域成员以使用其它网络共享功能。同时,在另一个域控制器上[配置 Windbindd 服务][20] ——在你开始发起网络共享文件之前。
--------------------------------------------------------------------------------
@@ -230,6 +234,7 @@ $ sudo mount //adc/share_name /mnt -o username=domain_user
我是一个电脑迷,开源 Linux 系统和软件爱好者,有 4 年多的 Linux 桌面、服务器系统使用和 Base 编程经验。
译者简介:
+
春城初春/春水初生/春林初盛/春風十裏不如妳
[rusking](https://github.com/rusking)
@@ -239,7 +244,7 @@ via: http://www.tecmint.com/create-shared-directory-on-samba-ad-dc-and-map-to-wi
作者:[Matei Cezar][a]
译者:[rusking](https://github.com/rusking)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
@@ -254,7 +259,7 @@ via: http://www.tecmint.com/create-shared-directory-on-samba-ad-dc-and-map-to-wi
[7]:http://www.tecmint.com/wp-content/uploads/2017/02/Connect-to-Samba-Share-Directory-Machine.png
[8]:http://www.tecmint.com/wp-content/uploads/2017/02/Manage-Samba-Share-Directory-Properties.png
[9]:http://www.tecmint.com/wp-content/uploads/2017/02/Assign-Samba-Share-Directory-Permissions-to-Users.png
-[10]:http://www.tecmint.com/manage-samba4-ad-from-windows-via-rsat/
+[10]:https://linux.cn/article-8097-1.html
[11]:http://www.tecmint.com/wp-content/uploads/2017/02/Map-Samba-Share-Folder.png
[12]:http://www.tecmint.com/wp-content/uploads/2017/02/Set-Samba-Shared-Folder-Name-Location.png
[13]:http://www.tecmint.com/wp-content/uploads/2017/02/Map-Samba-Share-Folder-in-Windows.png
@@ -264,7 +269,7 @@ via: http://www.tecmint.com/create-shared-directory-on-samba-ad-dc-and-map-to-wi
[17]:http://www.tecmint.com/wp-content/uploads/2017/02/List-Samba-Share-Directory-in-Linux.png
[18]:http://www.tecmint.com/wp-content/uploads/2017/02/Connect-Samba-Share-Directory-in-Linux.png
[19]:http://www.tecmint.com/wp-content/uploads/2017/02/Mount-Samba-Share-Directory-in-Linux.png
-[20]:http://www.tecmint.com/manage-samba4-active-directory-linux-command-line/
+[20]:https://linux.cn/article-8070-1.html
[21]:http://www.tecmint.com/author/cezarmatei/
[22]:http://www.tecmint.com/10-useful-free-linux-ebooks-for-newbies-and-administrators/
[23]:http://www.tecmint.com/free-linux-shell-scripting-books/
diff --git a/translated/tech/20170404 How To Enable Desktop Sharing In Ubuntu and Linux Mint.md b/published/20170404 How To Enable Desktop Sharing In Ubuntu and Linux Mint.md
similarity index 97%
rename from translated/tech/20170404 How To Enable Desktop Sharing In Ubuntu and Linux Mint.md
rename to published/20170404 How To Enable Desktop Sharing In Ubuntu and Linux Mint.md
index d839374229..4500e39732 100644
--- a/translated/tech/20170404 How To Enable Desktop Sharing In Ubuntu and Linux Mint.md
+++ b/published/20170404 How To Enable Desktop Sharing In Ubuntu and Linux Mint.md
@@ -1,7 +1,6 @@
如何在 Ubuntu 和 Linux Mint 上启用桌面共享
============================================================
-
桌面共享是指通过图形终端仿真器在计算机桌面上实现远程访问和远程协作的技术。桌面共享允许两个或多个连接到网络的计算机用户在不同位置对同一个文件进行操作。
在这篇文章中,我将向你展示如何在 Ubuntu 和 Linux Mint 中启用桌面共享,并展示一些重要的安全特性。
@@ -76,7 +75,7 @@
*连接确认前的黑屏*
-8、现在,在远程机器上,我需要像下一个屏幕截图显示的那样点击 `Allow` 来接受远程访问请求。
+8、现在,在远程机器上,我需要如下一个屏幕截图显示的那样点击 `Allow` 来接受远程访问请求。
[
![Allow Remote Desktop Sharing](http://www.tecmint.com/wp-content/uploads/2017/03/accept-remote-access-request.png)
@@ -107,7 +106,7 @@ via: http://www.tecmint.com/enable-desktop-sharing-in-ubuntu-linux-mint/
作者:[Aaron Kili][a]
译者:[ucasFL](https://github.com/ucasFL)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
diff --git a/sources/tech/20161125 How to Install Jenkins Automation Server with Apache on Ubuntu 16.04.md b/sources/tech/20161125 How to Install Jenkins Automation Server with Apache on Ubuntu 16.04.md
deleted file mode 100644
index c1f983a017..0000000000
--- a/sources/tech/20161125 How to Install Jenkins Automation Server with Apache on Ubuntu 16.04.md
+++ /dev/null
@@ -1,266 +0,0 @@
-ictlyh 接手 willcoderwang 翻译
-How to Install Jenkins Automation Server with Apache on Ubuntu 16.04
-============================================================
-
-
-Jenkins is an automation server forked from the Hudson project. Jenkins is a server based application running in a Java servlet container, it has support for many SCM (Source Control Management) software systems including Git, SVN, and Mercurial. Jenkins provides hundreds of plugins to automate your project. Jenkins created by Kohsuke Kawaguchi, first released in 2011 under MIT License, and it's free software.
-
-In this tutorial, I will show you how to install the latest Jenkins version on Ubuntu Server 16.04\. We will run Jenkins on our own domain name, and we will to install and configure Jenkins to run under the apache web server with the reverse proxy for Jenkins.
-
-### Prerequisite
-
-* Ubuntu Server 16.04 - 64bit
-* Root Privileges
-
-### Step 1 - Install Java OpenJDK 7
-
-Jenkins is based on Java, so we need to install Java OpenJDK version 7 on the server. In this step, we will install Java 7 from a PPA repository which we will add first.
-
-By default, Ubuntu 16.04 ships without the python-software-properties package for managing PPA repositories, so we must install this package first. Install python-software-properties with apt command.
-
-apt-get install python-software-properties
-
-Next, add Java PPA repository to the server.
-
-add-apt-repository ppa:openjdk-r/ppa
-Just Press ENTER
-
-Update the Ubuntu repository and install the Java OpenJDK with apt command.
-
-apt-get update
-apt-get install openjdk-7-jdk
-
-Verify the installation by typing the command below:
-
-java -version
-
-and you will get the Java version that is installed on the server.
-
-[
- ![Install Java 7 openJDK on Ubuntu 16.04](https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/1.png)
-][9]
-
-### Step 2 - Install Jenkins
-
-Jenkins provides an Ubuntu repository for the installation packages and we will install Jenkins from this repository.
-
-Add Jenkins key and repository to the system with the command below.
-
-wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
-echo 'deb https://pkg.jenkins.io/debian-stable binary/' | tee -a /etc/apt/sources.list
-
-Update the repository and install Jenkins.
-
-apt-get update
-apt-get install jenkins
-
-When the installation is done, start Jenkins with this systemctl command.
-
-systemctl start jenkins
-
-Verify that Jenkins is running by checking the default port used by Jenkins (port 8080). I will check it with the netstat command below:
-
-netstat -plntu
-
-Jenkins is installed and running on port 8080.
-
-[
- ![Jenkins has been installed on port 8080](https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/2.png)
-][10]
-
-### Step 3 - Install and Configure Apache as Reverse Proxy for Jenkins
-
-In this tutorial we will run Jenkins behind an apache web server, we will configure apache as the reverse proxy for Jenkins. First I will install apache and enable some require modules, and then I'll create the virtual host file with domain name my.jenkins.id for Jenkins. Please use your own domain name here and replace it in all config files wherever it appears.
-
-Install apache2 web server from Ubuntu repository.
-
-apt-get install apache2
-
-When the installation is done, enable the proxy and proxy_http modules so we can configure apache as frontend server/reverse proxy for Jenkins.
-
-a2enmod proxy
-a2enmod proxy_http
-
-Next, create a new virtual host file in the sites-available directory.
-
-cd /etc/apache2/sites-available/
-vim jenkins.conf
-
-Paste virtual host configuration below.
-
-```
-
- ServerName my.jenkins.id
- ProxyRequests Off
- ProxyPreserveHost On
- AllowEncodedSlashes NoDecode
-
-
- Order deny,allow
- Allow from all
-
-
- ProxyPass / http://localhost:8080/ nocanon
- ProxyPassReverse / http://localhost:8080/
- ProxyPassReverse / http://my.jenkins.id/
-
-```
-
-Save the file. Then activate the Jenkins virtual host with the a2ensite command.
-
-a2ensite jenkins
-
-Restart Apache and Jenkins.
-
-systemctl restart apache2
-systemctl restart jenkins
-
-Check that port 80 and 8000 are in use by Jenkins and Apache.
-
-netstat -plntu
-
-[
- ![Check that Apache and Jenkins are running](https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/3.png)
-][11]
-
-### Step 4 - Configure Jenkins
-
-Jenkins is running on the domain name 'my.jenkins.id'. Open your web browser and type in the URL. You will get the screen that requests you to enter the initial admin password. A password has been generated by Jenkins already, so we just need to show and copy the results to the password box.
-
-Show initial admin password Jenkins with cat command.
-
-cat /var/lib/jenkins/secrets/initialAdminPassword
-
-a1789d1561bf413c938122c599cf65c9
-
-[
- ![Get the Jenkins admin password](https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/4.png)
-][12]
-
-Paste the results to the screen and click '**Continue**'.
-
-[
- ![Jenkins Installation and Configuration](https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/5.png)
-][13]
-
-Now we should install some plugins in Jenkins to get a good foundation for later use. Choose '**Install Suggested Plugins**', click on it.
-
-[
- ![Install jenkins Plugins](https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/6.png)
-][14]
-
-Jenkins plugins installations in progress.
-
-[
- ![Jenkins plugins get installed](https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/7.png)
-][15]
-
-After plugin installation, we have to create a new admin password. Type in your admin username, password, email etc. and click on '**Save and Finish**'.
-
-[
- ![Create Jenkins admin account](https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/8.png)
-][16]
-
-Click start and start using Jenkins. You will be redirected to the Jenkins admin dashboard.
-
-[
- ![Get redirected to the admin dashboard](https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/9.png)
-][17]
-
-Jenkins installation and Configuration finished successfully
-
-[
- ![The Jenkins admin dashboard](https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/10.png)
-][18]
-
-### Step 5 - Jenkins Security
-
-From the Jenkins admin dashboard, we need to configure the standard security settings for Jenkins, click on '**Manage Jenkins**' and then '**Configure Global Security**'.
-
-[
- ![Jenkins Global Security Settings](https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/11.png)
-][19]
-
-Jenkins provides several authorization methods in the '**Access Control**' section. I select '**Matrix-based Security**' to be able to control all user privileges. Enable the admin user at the box '**User/Group**' and click **add**. Give the admin all privileges by **checking all options**, and give the anonymous just read permissions. Now Click '**Save**'.
-
-[
- ![Configure Jenkins Permissions](https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/12.png)
-][20]
-
-You will be redirected to the dashboard, and if there is login option, just type your admin user and password.
-
-### Step 6 - Testing a simple automation job
-
-In this section, I just want to test a simple job for the Jenkins server. I will create a simple job for testing Jenkins and to find out the server load with the top command.
-
-From the Jenkins admin dashboard, click '**Create New Job**'.
-
-[
- ![Create a new Job in Jenkins](https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/13.png)
-][21]
-
-Enter the job name, I'll use 'Checking System' here, select '**Freestyle Project**' and click '**OK**'.
-
-[
- ![Configure new Jenkins Job](https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/14.png)
-][22]
-
-Go to the '**Build**' tab. On the '**Add build step**', select the option '**Execute shell**'.
-
-Type in the command below into the box.
-
-top -b -n 1 | head -n 5
-
-Click '**Save**'.
-
-[
- ![Start a Jenkins Job](https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/15.png)
-][23]
-
-Now you are on the job page of the job 'Project checking system'. Click '**Build Now**' to execute the job 'checking system'.
-
-After the job has been executed, you will see the '**Build History**', click on the first job to see the results.
-
-Here are the results from the job executed by Jenkins.
-
-[
- ![Build and run a Jenkins Job](https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/16.png)
-][24]
-
-Jenkins installation with Apache web server on Ubuntu 16.04 completed successfully.
-
---------------------------------------------------------------------------------
-
-via: https://www.howtoforge.com/tutorial/how-to-install-jenkins-with-apache-on-ubuntu-16-04/
-
-作者:[Muhammad Arul ][a]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 组织编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]:https://twitter.com/howtoforgecom
-[1]:https://www.howtoforge.com/tutorial/how-to-install-jenkins-with-apache-on-ubuntu-16-04/#prerequisite
-[2]:https://www.howtoforge.com/tutorial/how-to-install-jenkins-with-apache-on-ubuntu-16-04/#step-install-java-openjdk-
-[3]:https://www.howtoforge.com/tutorial/how-to-install-jenkins-with-apache-on-ubuntu-16-04/#step-install-jenkins
-[4]:https://www.howtoforge.com/tutorial/how-to-install-jenkins-with-apache-on-ubuntu-16-04/#step-install-and-configure-apache-as-reverse-proxy-for-jenkins
-[5]:https://www.howtoforge.com/tutorial/how-to-install-jenkins-with-apache-on-ubuntu-16-04/#step-configure-jenkins
-[6]:https://www.howtoforge.com/tutorial/how-to-install-jenkins-with-apache-on-ubuntu-16-04/#step-jenkins-security
-[7]:https://www.howtoforge.com/tutorial/how-to-install-jenkins-with-apache-on-ubuntu-16-04/#step-testing-a-simple-automation-job
-[8]:https://www.howtoforge.com/tutorial/how-to-install-jenkins-with-apache-on-ubuntu-16-04/#reference
-[9]:https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/big/1.png
-[10]:https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/big/2.png
-[11]:https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/big/3.png
-[12]:https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/big/4.png
-[13]:https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/big/5.png
-[14]:https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/big/6.png
-[15]:https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/big/7.png
-[16]:https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/big/8.png
-[17]:https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/big/9.png
-[18]:https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/big/10.png
-[19]:https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/big/11.png
-[20]:https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/big/12.png
-[21]:https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/big/13.png
-[22]:https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/big/14.png
-[23]:https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/big/15.png
-[24]:https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/big/16.png
diff --git a/sources/tech/20170201 lnav – An Advanced Console Based Log File Viewer for Linux.md b/sources/tech/20170201 lnav – An Advanced Console Based Log File Viewer for Linux.md
index b040e51264..a4476260c8 100644
--- a/sources/tech/20170201 lnav – An Advanced Console Based Log File Viewer for Linux.md
+++ b/sources/tech/20170201 lnav – An Advanced Console Based Log File Viewer for Linux.md
@@ -1,3 +1,4 @@
+ictlyh Translating
lnav – An Advanced Console Based Log File Viewer for Linux
============================================================
diff --git a/sources/tech/20170213 Recover from a badly corrupt Linux EFI installation.md b/sources/tech/20170213 Recover from a badly corrupt Linux EFI installation.md
index 983aa5e3d1..db61d3f87b 100644
--- a/sources/tech/20170213 Recover from a badly corrupt Linux EFI installation.md
+++ b/sources/tech/20170213 Recover from a badly corrupt Linux EFI installation.md
@@ -1,3 +1,4 @@
+ictlyh Translating
# Recover from a badly corrupt Linux EFI installation
In the past decade or so, Linux distributions would occasionally fail before, during and after the installation, but I was always able to somehow recover the system and continue working normally. Well, [Solus][1]broke my laptop. Literally.
diff --git a/sources/tech/20170309 8 reasons to use LXDE.md b/sources/tech/20170309 8 reasons to use LXDE.md
index 2c51234e8e..f936b7833b 100644
--- a/sources/tech/20170309 8 reasons to use LXDE.md
+++ b/sources/tech/20170309 8 reasons to use LXDE.md
@@ -1,3 +1,4 @@
+ictlyh Translating
8 reasons to use LXDE
============================================================
diff --git a/sources/tech/20170319 How to Add a New Disk to an Existing Linux Server.md b/sources/tech/20170319 How to Add a New Disk to an Existing Linux Server.md
deleted file mode 100644
index 699fc42b8c..0000000000
--- a/sources/tech/20170319 How to Add a New Disk to an Existing Linux Server.md
+++ /dev/null
@@ -1,167 +0,0 @@
-ictlyh Translating
-How to Add a New Disk to an Existing Linux Server
-============================================================
-
-
-As system administrators, we would have got requirements wherein we need to configure raw hard disks to the existing servers as part of upgrading server capacity or sometimes disk replacement in case of disk failure.
-
-In this article, I will take you through the steps by which we can add the new raw hard disk to an existing Linux server such as RHEL/CentOS or Debian/Ubuntu.
-
-**Suggested Read:** [How to Add a New Disk Larger Than 2TB to An Existing Linux][1]
-
-Important: Please note that the purpose of this article is to show only how to create a new partition and doesn’t include partition extension or any other switches.
-
-I am using [fdisk utility][2] to do this configuration.
-
-I have added a hard disk of 20GB capacity to be mounted as a `/data` partition.
-
-fdisk is a command line utility to view and manage hard disks and partitions on Linux systems.
-
-```
-# fdisk -l
-```
-
-This will list the current partitions and configurations.
-
-[
- ![Find Linux Partition Details](http://www.tecmint.com/wp-content/uploads/2017/03/Find-Linux-Partition-Details.png)
-][3]
-
-Find Linux Partition Details
-
-After attaching the hard disk of 20GB capacity, the `fdisk -l` will give the below output.
-
-```
-# fdisk -l
-```
-[
- ![Find New Partition Details](http://www.tecmint.com/wp-content/uploads/2017/03/Find-New-Partition-Details.png)
-][4]
-
-Find New Partition Details
-
-New disk added is shown as `/dev/xvdc`. If we are adding physical disk it will show as `/dev/sda` based of the disk type. Here I used a virtual disk.
-
-To partition a particular hard disk, for example /dev/xvdc.
-
-```
-# fdisk /dev/xvdc
-```
-
-Commonly used fdisk commands.
-
-* `n` – Create partition
-* `p` – print partition table
-* `d` – delete a partition
-* `q` – exit without saving the changes
-* `w` – write the changes and exit.
-
-Here since we are creating a partition use `n` option.
-
-[
- ![Create New Partition in Linux](http://www.tecmint.com/wp-content/uploads/2017/03/Create-New-Partition-in-Linux.png)
-][5]
-
-Create New Partition in Linux
-
-Create either primary/extended partitions. By default we can have upto 4 primary partitions.
-
-[
- ![Create Primary Partition](http://www.tecmint.com/wp-content/uploads/2017/03/Create-Primary-Partition.png)
-][6]
-
-Create Primary Partition
-
-Give the partition number as desired. Recommended to go for the default value `1`.
-
-[
- ![Assign a Partition Number](http://www.tecmint.com/wp-content/uploads/2017/03/Assign-a-Partition-Number.png)
-][7]
-
-Assign a Partition Number
-
-Give the value of the first sector. If it is a new disk, always select default value. If you are creating a second partition on the same disk, we need to add `1` to the last sector of the previous partition.
-
-[
- ![Assign Sector to Partition](http://www.tecmint.com/wp-content/uploads/2017/03/Assign-Sector-to-Partition.png)
-][8]
-
-Assign Sector to Partition
-
-Give the value of the last sector or the partition size. Always recommended to give the size of the partition. Always prefix `+` to avoid value out of range error.
-
-[
- ![Assign Partition Size](http://www.tecmint.com/wp-content/uploads/2017/03/Assign-Partition-Size.png)
-][9]
-
-Assign Partition Size
-
-Save the changes and exit.
-
-[
- ![Save Partition Changes](http://www.tecmint.com/wp-content/uploads/2017/03/Save-Partition-Changes.png)
-][10]
-
-Save Partition Changes
-
-Now format the disk with mkfs command.
-
-```
-# mkfs.ext4 /dev/xvdc1
-```
-[
- ![Format New Partition](http://www.tecmint.com/wp-content/uploads/2017/03/Format-New-Partition.png)
-][11]
-
-Format New Partition
-
-Once formatting has been completed, now mount the partition as shown below.
-
-```
-# mount /dev/xvdc1 /data
-```
-
-Make an entry in /etc/fstab file for permanent mount at boot time.
-
-```
-/dev/xvdc1 /data ext4 defaults 0 0
-```
-
-##### Conclusion
-
-Now you know how to partition a raw disk using [fdisk command][12] and mount the same.
-
-We need to be extra cautious while working with the partitions especially when you are editing the configured disks. Please share your feedback and suggestions.
-
---------------------------------------------------------------------------------
-
-作者简介:
-
-I work on various platforms including IBM-AIX, Solaris, HP-UX, and storage technologies ONTAP and OneFS and have hands on experience on Oracle Database.
-
------------------------
-
-via: http://www.tecmint.com/add-new-disk-to-an-existing-linux/
-
-作者:[Lakshmi Dhandapani][a]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]:http://www.tecmint.com/author/lakshmi/
-[1]:http://www.tecmint.com/add-disk-larger-than-2tb-to-an-existing-linux/
-[2]:http://www.tecmint.com/fdisk-commands-to-manage-linux-disk-partitions/
-[3]:http://www.tecmint.com/wp-content/uploads/2017/03/Find-Linux-Partition-Details.png
-[4]:http://www.tecmint.com/wp-content/uploads/2017/03/Find-New-Partition-Details.png
-[5]:http://www.tecmint.com/wp-content/uploads/2017/03/Create-New-Partition-in-Linux.png
-[6]:http://www.tecmint.com/wp-content/uploads/2017/03/Create-Primary-Partition.png
-[7]:http://www.tecmint.com/wp-content/uploads/2017/03/Assign-a-Partition-Number.png
-[8]:http://www.tecmint.com/wp-content/uploads/2017/03/Assign-Sector-to-Partition.png
-[9]:http://www.tecmint.com/wp-content/uploads/2017/03/Assign-Partition-Size.png
-[10]:http://www.tecmint.com/wp-content/uploads/2017/03/Save-Partition-Changes.png
-[11]:http://www.tecmint.com/wp-content/uploads/2017/03/Format-New-Partition.png
-[12]:http://www.tecmint.com/fdisk-commands-to-manage-linux-disk-partitions/
-[13]:http://www.tecmint.com/author/lakshmi/
-[14]:http://www.tecmint.com/10-useful-free-linux-ebooks-for-newbies-and-administrators/
-[15]:http://www.tecmint.com/free-linux-shell-scripting-books/
diff --git a/sources/tech/20170320 How to deploy Node.js Applications with pm2 and Nginx on Ubuntu.md b/sources/tech/20170320 How to deploy Node.js Applications with pm2 and Nginx on Ubuntu.md
index f397c2cb41..db2f20688d 100644
--- a/sources/tech/20170320 How to deploy Node.js Applications with pm2 and Nginx on Ubuntu.md
+++ b/sources/tech/20170320 How to deploy Node.js Applications with pm2 and Nginx on Ubuntu.md
@@ -1,3 +1,4 @@
+ictlyh Translating
How to deploy Node.js Applications with pm2 and Nginx on Ubuntu
============================================================
diff --git a/sources/tech/20170331 All You Need To Know About Processes in Linux Comprehensive Guide.md b/sources/tech/20170331 All You Need To Know About Processes in Linux Comprehensive Guide.md
index 8176c295a7..28b6a363e5 100644
--- a/sources/tech/20170331 All You Need To Know About Processes in Linux Comprehensive Guide.md
+++ b/sources/tech/20170331 All You Need To Know About Processes in Linux Comprehensive Guide.md
@@ -1,3 +1,4 @@
+ictlyh Translating
All You Need To Know About Processes in Linux [Comprehensive Guide]
============================================================
diff --git a/sources/tech/20170410 Cpustat – Monitors CPU Utilization by Running Processes in Linux.md b/sources/tech/20170410 Cpustat – Monitors CPU Utilization by Running Processes in Linux.md
index 3594630195..05858511a3 100644
--- a/sources/tech/20170410 Cpustat – Monitors CPU Utilization by Running Processes in Linux.md
+++ b/sources/tech/20170410 Cpustat – Monitors CPU Utilization by Running Processes in Linux.md
@@ -1,3 +1,4 @@
+ictlyh Translating
Cpustat – Monitors CPU Utilization by Running Processes in Linux
============================================================
diff --git a/translated/tech/20161125 How to Install Jenkins Automation Server with Apache on Ubuntu 16.04.md b/translated/tech/20161125 How to Install Jenkins Automation Server with Apache on Ubuntu 16.04.md
new file mode 100644
index 0000000000..4e9cbe95a7
--- /dev/null
+++ b/translated/tech/20161125 How to Install Jenkins Automation Server with Apache on Ubuntu 16.04.md
@@ -0,0 +1,266 @@
+如何在 Ubuntu16.04 中用 Apache 部署 Jenkins 自动化服务器
+============================================================
+
+
+Jenkins 是从 Hudson 项目衍生出来的自动化服务器。Jenkins 是一个基于服务器的应用程序,运行在 Java servlet 容器中,它支持包括 Git、SVN 以及 Mercurial 在内的多种 SCM(Source Control Management,源码控制工具)。Jenkins 提供了上百种插件帮助你的项目实现自动化。Jenkins 由 Kohsuke Kawaguchi 开发,在 2011 年使用 MIT 协议发布了第一个发行版,它是个免费软件。
+
+在这篇指南中,我会向你介绍如何在 Ubuntu 16.04 中安装最新版本的 Jenkins。我们会用自己的域名运行 Jenkins,在 apache web 服务器中安装和配置 Jenkins,而且支持反向代理。
+
+### 前提
+
+* Ubuntu 16.04 服务器 - 64 位
+* Root 权限
+
+### 第一步 - 安装 Java OpenJDK 7
+
+Jenkins 基于 Java,因此我们需要在服务器上安装 Java OpenJDK 7。在这里,我们会从一个 PPA 仓库安装 Java 7,首先我们需要添加这个仓库。
+
+默认情况下,Ubuntu 16.04 没有安装用于管理 PPA 仓库的 python-software-properties 软件包,因此我们首先需要安装这个软件。使用 apt 命令安装 python-software-properties。
+
+`apt-get install python-software-properties`
+
+下一步,添加 Java PPA 仓库到服务器中。
+
+`add-apt-repository ppa:openjdk-r/ppa`
+
+输入回车键
+
+用 apt 命令更新 Ubuntu 仓库并安装 Java OpenJDK。`
+
+`apt-get update`
+`apt-get install openjdk-7-jdk`
+
+输入下面的命令验证安装:
+
+`java -version`
+
+你会看到安装到服务器上的 Java 版本。
+
+[
+ ![在 Ubuntu 16.04 上安装 Java OpenJDK 7](https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/1.png)
+][9]
+
+### 第二步 - 安装 Jenkins
+
+Jenkins 给软件安装包提供了一个 Ubuntu 仓库,我们会从这个仓库中安装 Jenkins。
+
+用下面的命令添加 Jenkins 密钥和仓库到系统中。
+
+`wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -`
+`echo 'deb https://pkg.jenkins.io/debian-stable binary/' | tee -a /etc/apt/sources.list`
+
+更新仓库并安装 Jenkins。
+
+`apt-get update`
+`apt-get install jenkins`
+
+安装完成后,用下面的命令启动 Jenkins。
+
+`systemctl start jenkins`
+
+通过检查 Jenkins 默认使用的端口(端口 8080)验证 Jenkins 正在运行。我会像下面这样用 netstat 命令检测:
+
+`netstat -plntu`
+
+Jenkins 已经安装好了并运行在 8080 端口。
+
+[
+ ![已经将 Jenkins 安装到 8080 端口](https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/2.png)
+][10]
+
+### 第三步 - 为 Jenkins 安装和配置 Apache 作为反向代理
+
+在这篇指南中,我们会在一个 apache web 服务器中运行 Jenkins,我们会为 Jenkins 配置 apache 作为反向代理。首先我会安装 apache 并启用一些需要的模块,然后我会为 Jenkins 用域名 my.jenkins.id 创建虚拟 host 文件。请在这里使用你自己的域名并在所有配置文件中出现的地方替换。
+
+从 Ubuntu 仓库安装 apache2 web 服务器。
+
+`apt-get install apache2`
+
+安装完成后,启用 proxy 和 proxy_http 模块以便将 apache 配置为 Jenkins 的前端服务器/反向代理。
+
+`a2enmod proxy`
+`a2enmod proxy_http`
+
+下一步,在 sites-available 目录创建新的虚拟 host 文件。
+
+`cd /etc/apache2/sites-available/`
+`vim jenkins.conf`
+
+粘贴下面的虚拟 host 配置。
+
+```
+
+ ServerName my.jenkins.id
+ ProxyRequests Off
+ ProxyPreserveHost On
+ AllowEncodedSlashes NoDecode
+
+
+ Order deny,allow
+ Allow from all
+
+
+ ProxyPass / http://localhost:8080/ nocanon
+ ProxyPassReverse / http://localhost:8080/
+ ProxyPassReverse / http://my.jenkins.id/
+
+```
+
+保存文件。然后用 a2ensite 命令激活 Jenkins 虚拟 host。
+
+`a2ensite jenkins`
+
+重启 Apache 和 Jenkins。
+
+`systemctl restart apache2`
+`systemctl restart jenkins`
+
+检查 Jenkins 和 Apache 正在使用 80 和 8080 端口。
+
+`netstat -plntu`
+
+[
+ ![检查 Apache 和 Jenkins 是否在运行](https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/3.png)
+][11]
+
+### 第四步 - 配置 Jenkins
+
+Jenkins 用域名 'my.jenkins.id' 运行。打开你的 web 浏览器然后输入 URL。你会看到要求你输入初始管理员密码的页面。Jenkins 已经生成了一个密码,因此我们只需要显示并把结果复制到密码框。
+
+用 cat 命令显示 Jenkins 初始管理员密码。
+
+`cat /var/lib/jenkins/secrets/initialAdminPassword`
+
+a1789d1561bf413c938122c599cf65c9
+
+[
+ ![获取 Jenkins 管理员密码](https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/4.png)
+][12]
+
+将结果粘贴到密码框然后点击 ‘**Continue**’。
+
+[
+ ![安装和配置 Jenkins](https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/5.png)
+][13]
+
+现在为了后面能比较好的使用,我们需要在 Jenkins 中安装一些插件。选择 ‘**Install Suggested Plugin**’,点击它。
+
+[
+ ![安装 Jenkins 插件](https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/6.png)
+][14]
+
+Jenkins 插件安装过程
+
+[
+ ![Jenkins 安装完插件](https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/7.png)
+][15]
+
+安装完插件后,我们需要创建一个新的管理员密码。输入你的管理员用户名、密码、电子邮件等,然后点击 ‘**Save and Finish**’。
+
+[
+ ![创建 Jenkins 管理员账户](https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/8.png)
+][16]
+
+点击 start 开始使用 Jenkins。你会被重定向到 Jenkins 管理员面板。
+
+[
+ ![重定向到管理员面板](https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/9.png)
+][17]
+
+成功完成 Jenkins 安装和配置。
+
+[
+ ![Jenkins 管理员面板](https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/10.png)
+][18]
+
+### 第五步 - Jenkins 安全
+
+在 Jenkins 管理员面板,我们需要为 Jenkins 配置标准的安全,点击 ‘**Manage Jenkins**’ 和 ‘**Configure Global Security**’。
+
+[
+ ![Jenkins 全局安全设置](https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/11.png)
+][19]
+
+Jenkins 在 ‘**Access Control**’ 部分提供了多种认证方法。为了能够控制所有的用户权限,我选择了 ‘**Matrix-based Security**’。在复选框 ‘**User/Group**’ 中启用 admin 用户。通过**勾选所有选项**给 admin 所有权限,给 anonymous 只读权限。现在点击 ‘**Save**’。
+
+[
+ ![配置 Jenkins 权限](https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/12.png)
+][20]
+
+你会被重定向到面板,如果出现了登录选项,只需输入你的管理员账户和密码。
+
+### 第六步 - 测试一个简单的自动化任务
+
+在这一部分,我想为 Jenkins 服务测试一个简单的任务。为了测试 Jenkins 我会创建一个简单的任务,并用 top 命令查看服务器的负载。
+
+在 Jenkins 管理员面板上,点击 ‘**Create New Job**’。
+
+[
+ ![在 Jenkins 中创建新的任务](https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/13.png)
+][21]
+
+输入任务的名称,在这里我用 ‘Checking System’,选择 ‘**Freestyle Project**’ 然后点击 ‘**OK**’。
+
+[
+ ![配置 Jenkins 任务](https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/14.png)
+][22]
+
+进入 ‘**Build**’ 标签页。在 ‘**Add build step**’,选择选项 ‘**Execute shell**’。
+
+在输入框输入下面的命令。
+
+`top -b -n 1 | head -n 5`
+
+点击 ‘**Save**’。
+
+[
+ ![启动 Jenkins 任务](https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/15.png)
+][23]
+
+现在你是在任务 ‘Project checking system’的任务页。点击 ‘**Build Now**’ 执行任务 ‘checking system’。
+
+任务执行完成后,你会看到 ‘**Build History**’,点击第一个任务查看结果。
+
+下面是 Jenkins 任务执行的结果。
+
+[
+ ![构建和运行 Jenkins 任务](https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/16.png)
+][24]
+
+到这里就介绍完了在 Ubuntu 16.04 中用 Apache web 服务器安装 Jenkins 的内容。
+
+--------------------------------------------------------------------------------
+
+via: https://www.howtoforge.com/tutorial/how-to-install-jenkins-with-apache-on-ubuntu-16-04/
+
+作者:[Muhammad Arul ][a]
+译者:[ictlyh](https://github.com/ictlyh)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 组织编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]:https://twitter.com/howtoforgecom
+[1]:https://www.howtoforge.com/tutorial/how-to-install-jenkins-with-apache-on-ubuntu-16-04/#prerequisite
+[2]:https://www.howtoforge.com/tutorial/how-to-install-jenkins-with-apache-on-ubuntu-16-04/#step-install-java-openjdk-
+[3]:https://www.howtoforge.com/tutorial/how-to-install-jenkins-with-apache-on-ubuntu-16-04/#step-install-jenkins
+[4]:https://www.howtoforge.com/tutorial/how-to-install-jenkins-with-apache-on-ubuntu-16-04/#step-install-and-configure-apache-as-reverse-proxy-for-jenkins
+[5]:https://www.howtoforge.com/tutorial/how-to-install-jenkins-with-apache-on-ubuntu-16-04/#step-configure-jenkins
+[6]:https://www.howtoforge.com/tutorial/how-to-install-jenkins-with-apache-on-ubuntu-16-04/#step-jenkins-security
+[7]:https://www.howtoforge.com/tutorial/how-to-install-jenkins-with-apache-on-ubuntu-16-04/#step-testing-a-simple-automation-job
+[8]:https://www.howtoforge.com/tutorial/how-to-install-jenkins-with-apache-on-ubuntu-16-04/#reference
+[9]:https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/big/1.png
+[10]:https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/big/2.png
+[11]:https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/big/3.png
+[12]:https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/big/4.png
+[13]:https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/big/5.png
+[14]:https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/big/6.png
+[15]:https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/big/7.png
+[16]:https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/big/8.png
+[17]:https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/big/9.png
+[18]:https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/big/10.png
+[19]:https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/big/11.png
+[20]:https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/big/12.png
+[21]:https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/big/13.png
+[22]:https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/big/14.png
+[23]:https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/big/15.png
+[24]:https://www.howtoforge.com/images/how-to-install-jenkins-with-apache-on-ubuntu-16-04/big/16.png
diff --git a/translated/tech/20161216 The truth about traditional JavaScript benchmarks.md b/translated/tech/20161216 The truth about traditional JavaScript benchmarks.md
index 1a4b281fda..5b0ea6b2de 100644
--- a/translated/tech/20161216 The truth about traditional JavaScript benchmarks.md
+++ b/translated/tech/20161216 The truth about traditional JavaScript benchmarks.md
@@ -1,29 +1,35 @@
探索传统 JavaScript 基准测试
============================================================
-可以很公平地说,[JavaScript][22] 是当下软件工程最重要的技术。对于那些深入接触过编程语言、编译器和虚拟机的人来说,这仍然有点令人惊讶,因为在语言设计者看来,JavaScript 不是十分优雅;在编译器工程师看来,它没有多少可优化的地方;而且还没有一个伟大的标准库。这取决于你和谁吐槽,JavaScript 的缺点你花上数周都枚举不完,不过你总会找到一些你从所未知的神奇的东西。尽管这看起来明显困难重重,不过 JavaScript 还是成为当今 web 的核心,并且还成为服务器端/云端的主导技术(通过 [Node.js][23]),甚至还开辟了进军物联网空间的道路。
+可以很公平地说,[JavaScript][22] 是当下软件工程最重要的技术。对于那些深入接触过编程语言、编译器和虚拟机的人来说,这仍然有点令人惊讶,因为在语言设计者们看来,JavaScript 不是十分优雅;在编译器工程师们看来,它没有多少可优化的地方;而且还没有一个伟大的标准库。这取决于你和谁吐槽,JavaScript 的缺点你花上数周都枚举不完,不过你总会找到一些你从所未知的神奇的东西。尽管这看起来明显困难重重,不过 JavaScript 还是成为了当今 web 的核心,并且还(通过 [Node.js][23])成为服务器端/云端的主导技术,甚至还开辟了进军物联网空间的道路。
-问题来了,为什么 JavaScript 如此受欢迎?或者说如此成功?我知道没有一个很好的答案。如今我们有许多使用 JavaScript 的好理由,或许最重要的是围绕其构建的庞大的生态系统,以及今天大量可用的资源。但所有这一切实际上是发展到一定程度的后果。为什么 JavaScript 变得流行起来了?嗯,你或许会说,这是 web 多年来的通用语了。但是在很长一段时间里,人们极其讨厌 JavaScript。回顾过去,似乎第一波 JavaScript 浪潮爆发在上个年代的后半段。不出所料,那个时候 JavaScript 引擎加速了各种不同的任务的执行,这可能让很多人对 JavaScript 刮目相看。
+问题来了,为什么 JavaScript 如此受欢迎?或者说如此成功?我知道没有一个很好的答案。如今我们有许多使用 JavaScript 的好理由,或许最重要的是围绕其构建的庞大的生态系统,以及今天大量可用的资源。但所有这一切实际上是发展到一定程度的后果。为什么 JavaScript 变得流行起来了?嗯,你或许会说,这是 web 多年来的通用语了。但是在很长一段时间里,人们极其讨厌 JavaScript。回顾过去,似乎第一波 JavaScript 浪潮爆发在上个年代的后半段。那个时候 JavaScript 引擎加速了各种不同的任务的执行,很自然的,这可能让很多人对 JavaScript 刮目相看。
-回到过去那些日子,这些加速测试使用了现在所谓的传统 JavaScript 基准——从苹果的 [SunSpider 基准][24](JavaScript 微基准之母)到 Mozilla 的 [Kraken 基准][25] 和谷歌的 V8 基准。后来,V8 基准被 [Octane 基准][26] 取代,而苹果发布了新的 [JetStream 基准][27]。这些传统的 JavaScript 基准测试驱动了无数人的努力,使 JavaScript 的性能达到了本世纪初没人能预料到的水平。据报道加速达到了 1000 倍,一夜之间在网站使用 `