你将会从这篇文章中学到:

  • 在服务器上部署Nginx。

  • 域名的购买。

  • 添加域名,让域名解析到你的服务器上。

  • 教你如何添加SSL证书。

  • 在你的服务器上面配置Nginx,实现http和https的访问。

  • 如何在公安部备案网站的操作。

服务器部署Nginx指南

Nginx 是俄罗斯人编写的十分轻量级的 HTTP 服务器,是一个高性能的 HTTP 和反向代理服务器。一般用于实现负载均衡和反向代理。

网站的访问量越来越大,服务器的服务模式也得进行相应的升级,比如分离出数据库服务器、分离出图片作为单独服务,这些是简单的数据的负载均衡,将压力分散到不同的机器上。有时候来自web前端的压力,也能让人十分头痛。怎样将同一个域名的访问分散到两台或更多的机器上呢?这其实就是另一种负载均衡了,nginx自身就可以做到,只需要做个简单的配置就行。

Nginx不单可以作为强大的web服务器,也可以作为一个反向代理服务器,而且nginx还可以按照调度规则实现动态、静态页面的分离,可以按照轮询、ip哈希、URL哈希、权重等多种方式对后端服务器做负载均衡,同时还支持后端服务器的健康检查。

我们这里只是说一下Nginx如何部署到你的服务器上以及踩坑指南。

安装Nginx

首先登陆你的服务器,输入

$ yum install nginx

来安装 Nginx,安装完成后,输入

$ nginx -v

即可查看 Nginx 是否安装成功。安装成功的截图如下:

这里的版本号显示的是:1.12.2

配置随系统启动

这里配置随系统启动,就是为了方便,不需要在启动Linux之后手动起Nginx。配置方法就只需要输入下面两个命令就可以了:

$ chkconfig --levels 235 nginx on
$ service nginx start
配置Nginx

Nginx的配置文件就在 /etc/nginx/目录下,叫 nginx.conf。这里我就把现成的配置文件给大家黏贴出来,当然,里面有些细小的地方还是需要修改的。我会指出来。

# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/user nginx;
# worker_processes 一般设置与 cpu 个数相等,也可配置为auto
worker_processes auto;
# 全局错误日志及 pid 目录
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;# Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;events {# 单个后台 worker proces s进程的最大并发链接数 worker_connections 1024;
}http {# 设置 log 格式log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';# 配置上游服务器,此处为 Tornado 服务器 IP+Portupstream frontends {server 127.0.0.1:8000;#server 10.10.10.10:8001;}# 访问日志access_log  /var/log/nginx/access.log  main;# sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,普通应用,设置为 on 即可;# keepalive_timeout 配置超时时间;# types_hash_max_size 影响散列表的冲突率。types_hash_max_size 越大,就会消耗更多的内存,但散列key的冲突率会降低,检索速度就更快。types_hash_max_size 越小,消耗的内存就越小,但散列key的冲突率可能上升。# client_max_body_size 客户端上传的body的最大值。sendfile            on;tcp_nopush          on;tcp_nodelay         on;keepalive_timeout   65;types_hash_max_size 2048;client_max_body_size 50m; include             /etc/nginx/mime.types;default_type        application/octet-stream;# Load modular configuration files from the /etc/nginx/conf.d directory.# See http://nginx.org/en/docs/ngx_core_module.html#include# for more information.include /etc/nginx/conf.d/*.conf;server {# 监听端口为 80listen       80 default_server;listen       [::]:80 default_server;server_name  _;# 默认网站根目录位置root         /usr/share/nginx/html;# Load configuration files for the default server block.include /etc/nginx/default.d/*.conf;# 设置默认请求代理,此处使用frontends,即请求代理至 Tronado 服务器location / {proxy_pass_header Server;proxy_set_header Host $http_host;proxy_redirect false;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Scheme $scheme;proxy_pass http://frontends;}# 定义 404 错误页error_page 404 /404.html;location = /40x.html {}# 定义 50x 错误页error_page 500 502 503 504 /50x.html;location = /50x.html {}}server {listen       443 ssl http2 default_server;listen       [::]:443 ssl http2 default_server;server_name  _;root         /usr/share/nginx/html;ssl_certificate "/root/peekpa.tech.crt";ssl_certificate_key "/root/peekpa.tech.key";ssl_session_cache shared:SSL:1m;ssl_session_timeout  10m;ssl_ciphers HIGH:!aNULL:!MD5;ssl_prefer_server_ciphers on;# Load configuration files for the default server block.include /etc/nginx/default.d/*.conf;location / {proxy_pass_header Server;proxy_set_header Host $http_host;proxy_redirect false;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Scheme $scheme;proxy_pass http://frontends;}error_page 404 /404.html;location = /40x.html {}error_page 500 502 503 504 /50x.html;location = /50x.html {}}}

大家如果想用,就直接把上面的这段复制黏贴就好。

这个配置文件集成http和https两个于一身的。里面有几个需要注意的地方。

# 配置上游服务器,此处为 Tornado 服务器 IP+Portupstream frontends {server 127.0.0.1:8000;#server 10.10.10.10:8001;}

当 Nginx 和后端服务器不在同一台机器上,并有多台后端服务器设备时,则配置具体服务器的 IP:端口即可,Nginx 会负载均衡的将流量均匀分配到这些服务器上。此时配置如下:

upstream frontends {server x.x.x.x:nnn;server y.y.y.y:mmm;server z.z.z.z:lll;
}

Nginx默认对上传文件的缓存是1M,这里我们修改成了50M。

client_max_body_size 50m;

在 nignx.conf 文件中的 location 下,添加如下代理配置,即所有收到的请求,都转发到 frontends (如上所述的 upstream frontends)处理,具体如下:

    proxy_pass_header Server;proxy_set_header Host $http_host;proxy_redirect false;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Scheme $scheme;proxy_pass http://frontends;

http用的端口是80, https用的算口是443。

https需要SSL证书,并且需要在server里面设置key的位置:

    ssl_certificate "/root/peekpa.tech.crt";ssl_certificate_key "/root/peekpa.tech.key";

key的获得方式,随后在SSL证书部分会讲。

这样就配置完成,http和https都配置好了。我们就可以启动Nginx服务了。

重启Nginx服务

输入一下命令就可以重启服务。

$ service nginx stop
$ service nginx start

效果图如下:

我们可以通过http访问

https访问:(如果没有设置SSL证书,此时应该是访问不了的,会报错,这里能访问是因为我已经配置好了SSL证书)

由于我们是通过https来访问IP的,所以Chrome会提示我们不安全。其实我这个服务器是安全的,只不过这个是谷歌自己简单的检测而已,对任何IP直接访问而提醒用户。

这里我们的服务器只有IP,那么我们接下来说一下域名的事儿。

域名 peekpa.tech 和解析

我的域名是在阿里云万网上面买的。

阿里云万网https://wanwang.aliyun.com/
腾讯云域名https://dnspod.cloud.tencent.com/  
GoDaddy:     https://sg.godaddy.com/

买域名的网站有很多,比如阿里云,腾讯云也可以买,你也可以去著名的GoDaddy上面买,而且那里也支持支付宝支付。很方便。

下面给大家简单说一下域名的购买和使用。这里就以阿里云为例。

首先输入你要买的域名名称:

点击查询,就会出来结果:

选择你中意的一个,添加到购物车里就好。这里需要注意的就是域名的后缀:有一些域名的后缀是要额外提供材料的,选择前请留意一下。

在结算页面,需要填写域名持有者或者机构的信息,这里需要认真填写真是信息。万一你买的域名,哪天就会被别的公司看上,以重金买走。如果填写的假的信息,别人是找不到你的。

这里就想起了weibo域名的笑话,哈哈哈哈。

付完款,买了域名,你就来到了阿里云的域名管理界面。

如果我们想要把域名解析到我们的服务器上,需要点击那个解析按钮,然后就进入了解析设置,里面选择添加记录。这里我就以peekpa.tech为例。

我们如果要配置www.peekpa.tech的解析,需要填写成下面这个样子:

这个是通用的,记录值写我们的服务器IP地址就好。

还有一种,就是在浏览器地址里面输入peekpa.tech就直接解析,在主机记录里面输入@,没有前面的www。这种解析的写法如下:

然后点击确定。将两条解析规则添加进去。

好了,稍等片刻,然后我们在浏览器测试一下刚才的结果:

输入www.peekpa.tech

www.peekpa.tech

输入peekpa.tech

peekpa.tech

我们看到,网页访问页面变成了阿里云的备案提示页面,这个应该是阿里云把80端口的网络请求拦截了,由于没有备案,所以显示的提示备案画面。若是要消除这个页面,唯一的途径就是公安局备案。但是!如果你是刚刚解析了地址,那么你的地址是可以正常访问的。应该是过一段时间,就不行了。

域名解析了,我们现在只是http的访问。如实要给我们的服务器添加https访问域名,我们这个时候就需要添加SSL证书了。

SSL证书的获取和https的访问

为什么要把http变成https呢?是因为https的访问更加安全,原因就在于每次访问,数据都是加密的。既然是加密,这里就需要一个叫SSL证书的东西了。

我的SSL证书实在腾讯云上面下载的。这里自己搞,用一个免费的就好。当然,这个加密证书是有付费的,而且等级越高,价格越贵。

一年证书3W4

当然,也有免费的证书可以下载申请。

阿里云的申请地址:在左侧选择云解析DNS,然后你的域名列表右侧有一个SSL证书,点进去就可以看到免费域名申请。

腾云云上申请地址
https://buy.cloud.tencent.com/ssl?fromSource=ssl

我这里选择腾讯云的SSL证书讲解。

这里选择域名型免费版(DV),然后点击申请。

然后按照提示一步一步的完成购买即可。过程中有一个TXT值,最好记录一下,每一步都有提示,提示你每个值是干什么的。这个TXT值,会在域名解析的页面填写中用到。为了方便,我们这时候回到域名解析的页面,上文中提到的位置,选择添加记录,按照腾讯云的提示,来填写:

填写好之后,点击添加。这样就结束了。再回到腾讯云的SSL界面。

这里,最后会下载下来一个zip包。解压缩,里面就会有不同服务器对应的key值。

进入到Nginx目录:

这里面,就看到有两个文件,一个是.crt文件,另一个是.key文件。有没有眼熟???眼熟吗???

没错!这两个文件就曾经出现在Nginx配置里面,位置是:

 server {
         listen       443 ssl http2 default_server;
         listen       [::]:443 ssl http2 default_server;
         server_name  _;
         root         /usr/share/nginx/html;

         ssl_certificate "/root/peekpa.tech.crt";
         ssl_certificate_key "/root/peekpa.tech.key";
         ssl_session_cache shared:SSL:1m;ssl_session_timeout  10m;
         ssl_ciphers HIGH:!aNULL:!MD5;
         ssl_prefer_server_ciphers on;

你现在要做的就是把这两个文件,复制到你服务器对应的目录里面,然后再在/etc/nginx/nginx.conf文件里面找到位置将地址写好。

记得!每一次修改完nginx.conf文件,一定要把Nginx服务重启一下。即stop,然后start。

这样,我们服务器里面有了SSL证书,域名也添加了SSL解析,我们来实验一下, 我们看到带不带www都是可以访问的。而且在浏览器地址前面,添加了安全俩字。这样,就支持了https访问。哈哈哈哈~

这里肯定有人就会问,为啥这么折腾,费时费事要弄个https啊?

首先,这个https是未来的趋势,就和python3是趋势一样;其次,好多地方都是需要https的,就比如微信小程序,如果你小程序里有请求接口,就必须得用https的请求,而且,只支持域名访问,域名还必须得是公安局备案的域名。

那么接下来就来捯饬捯饬域名备案的事儿。

域名备案指南

腾讯云也有备案系统。由于服务器是在阿里云买的,而且大家也看到了那个通过80端口访问的页面,所以这里还是选择阿里云的备案网站来进行备案。

https://beian.aliyun.com/

进入页面,按照指示一个一个来办理就行了。这里需要注意一点:各个省份的公安备案标准不一样,请在网站上仔细阅读。如果是个人备案,应当按照身份证上的地址所在公安备案。前期阿里审理工作比较快,大概只需要一两天的时间,中途需要照相,还需要特定的幕布,这个可以让阿里免费寄一个幕布,之后照相,提交材料就可以。阿里审核完成之后,进入公安局的流程,会很长。截至目前为止,我的备案还没有下来。可能第一次备案时间需要的长一些吧。

呃。。。。这一大通都说完了。。。巴拉巴拉说了一堆,希望对你们有所帮助。最后个人感觉,就我目前的需求强度来讲,阿里云要比腾讯云好一些,阿里云种类全。而AWS就不吐槽了,非国内节点太慢了。反正各有利弊,大家依照自己需求来选择就行。

阿里云/腾讯云服务器上部署Nginx,域名,SSL证书相关推荐

  1. 将证书文件上传至服务器任意位置,Nginx配置ssl证书

    获取证书 以腾讯云为例,解析好域名后,前往证书申请页ssl证书申请,因为我的域名也是在腾讯云,所以点击申请后,可以配置自动DNS验证,如果域名不在腾讯云则需要去域名商添加解析,具体看文档指引. 申请完 ...

  2. 在Postfix邮件服务器上部署SSL证书

    在Postfix邮件服务器上部署SSL证书 # 前提条件 # 如何部署 # 配置文件 # 启动SMTPS服务 # 重启Postfix服务器 # 更多信息 Postfix是一款基于sendmail改良而 ...

  3. linux怎么开启httpd服务公钥,在Apache httpd服务器上部署SSL证书

    Apache是一款时下最主流.被广泛使用的web服务器.本文详细描述如何在Apache httpd服务器上部署并使用SSL(Secure Sockets Layer)证书. 前提条件 Apache 2 ...

  4. 阿里云SSL证书在Nginx服务器上部署方法

    第一步,申请并下载SSL证书: 第二步,在SSL证书下载页面定位到Nginx服务器,并单击下载,将SSL证书压缩包下载到本地: 第三步,解压已下载保存到本地的SSL证书压缩包文件. 解压后的文件夹中有 ...

  5. Linux【问题记录 05】阿里云+腾讯云服务器挖矿木马 kthreaddk 处理记录+云服务器使用建议

    1. 问题说明 有一段时间没有登录云服务器了,心里想着看看服务器有没有被木马占领,好巧不巧,阿里云和腾讯云都被占领了,更巧的是,都是 kthreaddk 进程,首先想到的是百度一下看看有没有解决办法, ...

  6. 在云服务器上部署的项目一直运可以怎么做

    之前在阿里云上部署的一个项目,但是每次访问都需要ssh访问远程服务器, 运行项目才能够访问.于是网上查了一些资料, 但是并没有找到我想要的结果,但是最后我还是找到了我想要的答案.是在阿里云的帮助文档上 ...

  7. 从大陆访问,阿里云和腾讯云的香港云服务器,哪个更快?

    想要使用香港服务器的原因无非是那几个:①方便看外面的精彩世界:②省去备案过程,快速上线网站:③业务用户大多集中在日本或东南亚地区. 无论是出于哪个原因,都要先考虑其稳定性,如果服务器都连不上,再快又有 ...

  8. 八月最新阿里云和腾讯云服务器优惠活动汇总

    八月份已经到来,阿里云和腾讯云都推出了相应的优惠活动,腾讯云以买赠专区福利为主,购买本区的轻量应用服务器或者云服务器CVM可免费延长最长3个月或者再领取一台服务器,最高价值3955元.阿里鱼则是以短期 ...

  9. 在云服务器上部署项目(上)

    1. 购买腾讯云主机 首先我们先了解一下云服务器的概念: 云服务器: 高性能高稳定的云虚拟机,可在云中提供弹性可调节的计算容量,不让计算能束缚您的想象:您可以轻松购买自定义配置的机型,在几分钟内获取到 ...

最新文章

  1. 在 Windows server 2008 下计划任务无法正常执行bat批处理文件
  2. 【Java Web后台实验与开发】The server time zone value ‘�й���׼ʱ��‘ is unrecognized or represents more than one
  3. 0 RabbitMQ概念
  4. appium java简单实例_Appium创建一个Note的实例
  5. Spring Boot (八)MyBatis + Docker + MongoDB 4.x
  6. vux页面转换html,vue vux 怎么用 样式变量 修改主题配色
  7. python读取文件前30个字符_Python 批量读取文件中指定字符的实现
  8. jks与keystore的区别
  9. “机智号”成功试飞火星,但它使用的开源软件安全吗?
  10. EF多对多关系中如何利用关系表(EF4.1 Many to Many involves junction table details)
  11. openstack: No valid host was found. There are not enough hosts available
  12. php快递按选择次数排序,php快递接口查询api 不限制次数
  13. 19.首页异步数据的获取
  14. 输入一个字符串,内有数字和非数字字符,例如: A123x456 17960? 302tab5876 将其中连续的数字作为一个整数,依次存放到一数组a中。例如,123存放在a[0],456放在a[1]中
  15. 嵌入式:ARM系列处理器详解与性能对比
  16. HTML5 概述及基本语法
  17. 10第六章:【01】常用指令-帮助指令
  18. 大数据之hive:hive分桶表
  19. Altium Designer中导出bxl文件
  20. CCM单电压环BUCK开关变换器传递函数理论分析与simulink估算对比

热门文章

  1. xcode如何在一个项目中建多个C程序
  2. Linux命令之ifconfig命令
  3. ArcGIS基础实验操作100例--实验66符号图层的保存与加载
  4. 关于对KB4Rec数据集的学习
  5. VScode运行js时,出现 'node' �����
  6. 编程小白C语言学习计划
  7. 针对数能同传SWIPT的个人理解与总结Part1
  8. SQL Server从入门到精通(转)
  9. python对象的生命周期_(python)通过一个代码例子来分析对象的生命周期
  10. 不同意安装条款就没法使用?新法规对APP霸王条款说“不”