【建議收藏】幫你在你的服務器上部署Nginx,域名,SSL證書,內含『阿里雲百元優惠券』,速來領取

很久沒更了,感謝你們一直的守候。在沒更的日子裏,鏟屎官確實有不少事情要忙,還有不少事兒得作。可是讓我感動的就是,大家還依然堅持在這裏等着我,那麼做爲鏟屎官,我接下來出的東西,絕對讓你對得起這份等待要讓大家大飽眼福。html

廢話很少說了,你將會從這篇文章中學到:前端

  • 在服務器上部署Nginx。node

  • 域名的購買。python

  • 添加域名,讓域名解析到你的服務器上。nginx

  • 教你如何添加SSL證書。web

  • 在你的服務器上面配置Nginx,實現http和https的訪問。數據庫

  • 如何在公安部備案網站的操做。小程序

知識點不少,絕對乾貨滿滿。來吧,一塊兒來摟起來。後端

服務器部署Nginx指南

Nginx 是俄羅斯人編寫的十分輕量級的 HTTP 服務器,是一個高性能的 HTTP 和反向代理服務器。通常用於實現負載均衡和反向代理。微信小程序

網站的訪問量愈來愈大,服務器的服務模式也得進行相應的升級,好比分離出數據庫服務器、分離出圖片做爲單獨服務,這些是簡單的數據的負載均衡,將壓力分散到不一樣的機器上。有時候來自web前端的壓力,也能讓人十分頭痛。怎樣將同一個域名的訪問分散到兩臺或更多的機器上呢?這其實就是另外一種負載均衡了,nginx自身就能夠作到,只須要作個簡單的配置就行。

Nginx不單能夠做爲強大的web服務器,也能夠做爲一個反向代理服務器,並且nginx還能夠按照調度規則實現動態、靜態頁面的分離,能夠按照輪詢、ip哈希、URL哈希、權重等多種方式對後端服務器作負載均衡,同時還支持後端服務器的健康檢查。

咱們這裏只是說一下Nginx如何部署到你的服務器上以及踩坑指南。

安裝Nginx

首先登錄你的服務器,輸入

1$ yum install nginx 
複製代碼

來安裝 Nginx,安裝完成後,輸入

1$ nginx -v 
複製代碼

便可查看 Nginx 是否安裝成功。安裝成功的截圖以下:


這裏的版本號顯示的是:1.12.2

配置隨系統啓動

這裏配置隨系統啓動,就是爲了方便,不須要在啓動Linux以後手動起Nginx。配置方法就只須要輸入下面兩個命令就能夠了:

1$ chkconfig --levels 235 nginx on
2$ service nginx start
複製代碼
配置Nginx

Nginx的配置文件就在 /etc/nginx/目錄下,叫 nginx.conf。這裏我就把現成的配置文件給你們黏貼出來,固然,裏面有些細小的地方仍是須要修改的。我會指出來。

1# For more information on configuration, see:
  2# * Official English Documentation: http://nginx.org/en/docs/
  3# * Official Russian Documentation: http://nginx.org/ru/docs/
  4
  5user nginx;
  6# worker_processes 通常設置與 cpu 個數相等,也可配置爲auto
  7worker_processes auto;
  8# 全局錯誤日誌及 pid 目錄
  9error_log /var/log/nginx/error.log;
 10pid /run/nginx.pid;
 11
 12# Load dynamic modules. See /usr/share/nginx/README.dynamic.
 13include /usr/share/nginx/modules/*.conf;
 14
 15events {
 16    # 單個後臺 worker proces s進程的最大併發連接數 
 17    worker_connections 1024;
 18}
 19
 20http {
 21    # 設置 log 格式
 22    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
 23                      '$status $body_bytes_sent "$http_referer" '
 24                      '"$http_user_agent" "$http_x_forwarded_for"';
 25
 26    # 配置上游服務器,此處爲 Tornado 服務器 IP+Port
 27    upstream frontends {
 28        server 127.0.0.1:8000;
 29        #server 10.10.10.10:8001;
 30    }
 31
 32    # 訪問日誌
 33    access_log  /var/log/nginx/access.log  main;
 34
 35    # sendfile 指令指定 nginx 是否調用 sendfile 函數(zero copy 方式)來輸出文件,普通應用,設置爲 on 便可;
 36    # keepalive_timeout 配置超時時間;
 37    # types_hash_max_size 影響散列表的衝突率。types_hash_max_size 越大,就會消耗更多的內存,但散列key的衝突率會下降,檢索速度就更快。types_hash_max_size 越小,消耗的內存就越小,但散列key的衝突率可能上升。
 38    # client_max_body_size 客戶端上傳的body的最大值。
 39    sendfile            on;
 40    tcp_nopush          on;
 41    tcp_nodelay         on;
 42    keepalive_timeout   65;
 43    types_hash_max_size 2048;
 44    client_max_body_size 50m; 
 45
 46    include             /etc/nginx/mime.types;
 47    default_type        application/octet-stream;
 48
 49    # Load modular configuration files from the /etc/nginx/conf.d directory.
 50    # See http://nginx.org/en/docs/ngx_core_module.html#include
 51    # for more information.
 52    include /etc/nginx/conf.d/*.conf;
 53
 54    server {
 55        # 監聽端口爲 80
 56        listen       80 default_server;
 57        listen       [::]:80 default_server;
 58        server_name  _;
 59        # 默認網站根目錄位置
 60        root         /usr/share/nginx/html;
 61
 62        # Load configuration files for the default server block.
 63        include /etc/nginx/default.d/*.conf;
 64
 65        # 設置默認請求代理,此處使用frontends,即請求代理至 Tronado 服務器
 66        location / {
 67            proxy_pass_header Server;
 68            proxy_set_header Host $http_host;
 69            proxy_redirect false;
 70            proxy_set_header X-Real-IP $remote_addr;
 71            proxy_set_header X-Scheme $scheme;
 72            proxy_pass http://frontends;
 73        }
 74
 75        # 定義 404 錯誤頁
 76        error_page 404 /404.html;
 77            location = /40x.html {
 78        }
 79        # 定義 50x 錯誤頁
 80        error_page 500 502 503 504 /50x.html;
 81            location = /50x.html {
 82        }
 83    }
 84
 85    server {
 86        listen       443 ssl http2 default_server;
 87        listen       [::]:443 ssl http2 default_server;
 88        server_name  _;
 89        root         /usr/share/nginx/html;
 90
 91        ssl_certificate "/root/peekpa.tech.crt";
 92        ssl_certificate_key "/root/peekpa.tech.key";
 93        ssl_session_cache shared:SSL:1m;
 94        ssl_session_timeout  10m;
 95        ssl_ciphers HIGH:!aNULL:!MD5;
 96        ssl_prefer_server_ciphers on;
 97
 98        # Load configuration files for the default server block.
 99        include /etc/nginx/default.d/*.conf;
100         location / {
101            proxy_pass_header Server;
102            proxy_set_header Host $http_host;
103            proxy_redirect false;
104            proxy_set_header X-Real-IP $remote_addr;
105            proxy_set_header X-Scheme $scheme;
106            proxy_pass http://frontends;
107        }
108
109        error_page 404 /404.html;
110            location = /40x.html {
111        }
112
113        error_page 500 502 503 504 /50x.html;
114            location = /50x.html {
115        }
116    }
117
118}
複製代碼

你們若是想用,就直接把上面的這段複製黏貼就好。

這個配置文件集成http和https兩個於一身的。裏面有幾個須要注意的地方。

1# 配置上游服務器,此處爲 Tornado 服務器 IP+Port
2    upstream frontends {
3        server 127.0.0.1:8000;
4        #server 10.10.10.10:8001;
5    }
複製代碼

當 Nginx 和後端服務器不在同一臺機器上,並有多臺後端服務器設備時,則配置具體服務器的 IP:端口便可,Nginx 會負載均衡的將流量均勻分配到這些服務器上。此時配置以下:

1upstream frontends {
2    server x.x.x.x:nnn;
3    server y.y.y.y:mmm;
4    server z.z.z.z:lll;
5}
複製代碼

Nginx默認對上傳文件的緩存是1M,這裏咱們修改爲了50M。

1client_max_body_size 50m; 
複製代碼

在 nignx.conf 文件中的 location 下,添加以下代理配置,即全部收到的請求,都轉發到 frontends (如上所述的 upstream frontends)處理,具體以下:

1    proxy_pass_header Server;
2    proxy_set_header Host $http_host;
3    proxy_redirect false;
4    proxy_set_header X-Real-IP $remote_addr;
5    proxy_set_header X-Scheme $scheme;
6    proxy_pass http://frontends;
複製代碼

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

https須要SSL證書,而且須要在server裏面設置key的位置:

1    ssl_certificate "/root/peekpa.tech.crt";
2    ssl_certificate_key "/root/peekpa.tech.key";
複製代碼

key的得到方式,隨後在SSL證書部分會講。

這樣就配置完成,http和https都配置好了。咱們就能夠啓動Nginx服務了。

重啓Nginx服務

輸入一下命令就能夠重啓服務。

1$ service nginx stop
2$ 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上面買,並且那裏也支持支付寶支付。很方便。

我的感受,阿里雲萬網要比騰訊雲域名好一些,關鍵是搜索的域名多。價格其實三家都差很少,有些新用戶在這裏買域名有優惠券。我這裏就給你們分享一些阿里雲的 1000元 優惠券:

https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=nrkmbo9q

大家速度去領取就好。

下面給你們簡單說一下域名的購買和使用。這裏就以阿里云爲例。

首先輸入你要買的域名名稱:

點擊查詢,就會出來結果:


選擇你中意的一個,添加到購物車裏就好。這裏須要注意的就是域名的後綴:有一些域名的後綴是要額外提供材料的,選擇前請留意一下。

在結算頁面,須要填寫域名持有者或者機構的信息,這裏須要認真填寫真是信息。萬一你買的域名,哪天就會被別的公司看上,以重金買走。若是填寫的假的信息,別人是找不到你的。

這裏就想起了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配置裏面,位置是:

1server {
 2        listen       443 ssl http2 default_server;
 3        listen       [::]:443 ssl http2 default_server;
 4        server_name  _;
 5        root         /usr/share/nginx/html;
 6
 7        ssl_certificate "/root/peekpa.tech.crt";
 8        ssl_certificate_key "/root/peekpa.tech.key";
 9        ssl_session_cache shared:SSL:1m;
10        ssl_session_timeout  10m;
11        ssl_ciphers HIGH:!aNULL:!MD5;
12        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就不吐槽了,非國內節點太慢了。反正各有利弊,你們依照本身需求來選擇就行。

鏟屎官下一次來簡單說說微信小程序和本身服務器結合的事兒。。。

最後和大家說一個小祕密,上面文章的二維碼,都是有福利了,啊哈哈哈哈哈,下期見~

相關文章
相關標籤/搜索