国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

一起飛系列之:騰訊云配置Ubuntu16.04, Nginx, PHP 7, MySql, PhpM

jackwang / 1792人閱讀

摘要:這個文檔,騰訊云的官網(wǎng)寫的比較詳細,可自行參考。騰訊云提供了免費的證書,雖然級別不高,不過對普通人絕對夠了,這點要給肥鵝個贊。

前言

公司業(yè)務擴展需要大力提高微信用戶的關注度,但是主服務器都在境外,國內客戶訪問速度成為了最大的障礙。先后試驗過CloudFlare跟騰訊DNS加速,但是都無法逾越我們的萬里長城萬里長。所以決定將服務區(qū)塊整體遷移,將國際跟國內業(yè)務分開。在對比了騰訊跟阿里兩朵云彩之后,決定牽手小肥鵝。老板問為啥用肥鵝?“便宜!” 我撇下兩個字跟一個大大的驚嘆號絕塵而去,留下老板一人在風中感激涕零......

系統(tǒng)配置

服務器的配置需要根據(jù)的不同的需求做不同的改動,云服務器的好處是比較靈活,可以根據(jù)后續(xù)發(fā)展做適當調整。根據(jù)我們公司的業(yè)務模式我選擇了如下的配置:

基礎配置:8核CPU 16G內存

系統(tǒng)硬盤:200G SSD云硬盤

數(shù)據(jù)硬盤:100G SSD云硬盤

操作系統(tǒng):Ubuntu 16.04

對于系統(tǒng),在CentOS跟Ubuntu之間我做了一個選擇:Ubuntu. 這里做個簡單的說明,很多人說用CentOS好因為支持周期長,而且優(yōu)化效果更好。但是從公司運營成本角度講,Ubuntu上的套件數(shù)量豐富,更新快,安裝簡單,部署速度快。基本上起一個服務器也就不到半個小時,多臺的話可以自己做映射,然后修改dns路由器直接切換到新服務器上了。對于迭代頻繁的項目來說還是非常適合的。

有點跑偏了,言歸正傳,老司機開車了,大家一起飛起來:

SSH配置

任何一個云都提供了SSH登陸模式,有的人喜歡給每個SSH登陸配一個專屬的公鑰,我個人的習慣是用我本身Mac電腦的公鑰去匹配相關SSH登陸,這因人而異。其次,處于安全考慮騰訊云給Ubuntu系統(tǒng)自動配置一個用戶ubuntu,這個用戶不是root用戶,這個要注意一下。 具體的Linux登陸實例網(wǎng)上有很多,我就不在這里的嘚啵了,給個官網(wǎng)鏈接:
鏈接描述

Nginx配置 安裝

如我前文提到的,Ubuntu已經(jīng)套好了很多軟件,安裝Nginx也是簡單到非常,只要執(zhí)行下列命令即可安裝:

$    sudo apt-get update    // 先升級apt管理包!先升級apt管理包!先升級apt管理包!
$    sudo apt-get install nginx // 再安裝Nginx

// 注意,從Ubuntu 16.04開始 Nginx已經(jīng)實現(xiàn)自動配置,裝完即可運行.
防火墻

然后檢查一下Ubuntu自帶的防火墻管理工具UFW是否為開啟狀態(tài):

$    sudo ufw status

如果是第一次安裝,通常的輸出結果為:

Output
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere 

如果你在上面的輸出沒看到Nginx字樣,請執(zhí)行下面命令:

$    sudo ufw allow "Nginx HTTP" // 允許接受Nginx的HTTP請求

然后你可以檢測UFW的支持列表:

$    sudo ufw app list // 可重復上面的命令吧Nginx的HTTPS協(xié)議也安裝好

關于UFW,可以自行查閱相關文檔,使用很簡單,可以通過它控制你的網(wǎng)站鏈接,屏蔽IP地址,數(shù)據(jù)庫鏈接,郵件端口...

最后,讓我們檢查一下Nginx的安裝情況吧:

$    systemctl status nginx 

如果安裝順利,輸出結果會有Active: active (running) 字樣.

測試

現(xiàn)在我們可以看看服務器訪問是否順利,首先是得到當前服務器IP地址:

$    ip addr show eth0 | grep inet | awk "{ print $2; }" | sed "s//.*$//"

上面命令會返回幾行結果,其中包括你的服務器的外網(wǎng)IP地址,然后你可以通過:http://外網(wǎng)IP地址來訪問你的服務器,如果一切順利,你就會看到久違的畫面:

知識點

?關于Ngixn常用的文件以及目錄:

/etc/nginx 這個是存放所有Nginx相關的配置文件的目錄。

/etc/nginx/nginx.conf 這個是Nginx的全局默認配置文件,不建議修改如果你不清楚的話。

/etc/nginx/sites-available/ 這個目錄可以理解為你所有網(wǎng)站的配置文件目錄,但是并不是所有的網(wǎng)站都發(fā)布了。

/etc/nginx/sites-enabled/ 這個目錄是你所有發(fā)布的網(wǎng)站的配置文件目錄。是通過symbolic link連接起來了,所有網(wǎng)站都是已經(jīng)發(fā)布的網(wǎng)站。

/var/log/nginx/access.log Nginx的access日志

/var/log/nginx/error.log Nginx的錯誤日志

其他目錄及文件請參考:常用目錄手冊

?啟動和停止Nginx服務:

//方法一:
$    sudo /etc/init.d/nginx start    // 開啟
$    sudo /etc/init.d/nginx stop     // 停止
$    sudo /etc/init.d/nginx restart  // 重啟

//方法二:
$    sudo systemctl start nginx      // 開啟
$    sudo systemctl stop nginx       // 停止 
$    sudo systemctl restart nginx    // 重啟

數(shù)據(jù)庫配置 安裝

簡簡單單:

$    sudo apt-get install mysql-server mysql-client

然后會有個提示 Do you want to continue? [Y/n] 輸入 Y 即可。在快安裝完畢時,會跳出設置 root 密碼的界面。注意該root為數(shù)據(jù)庫的用戶,而非服務器賬戶, 別搞混了。

然后測試數(shù)據(jù)庫登陸是否正常:

$    mysql -u root –p // 輸入上一步設置的密碼

然后測試數(shù)據(jù)庫端口監(jiān)聽是否正常:

$    netstat -an | grep 3306

處于安全考慮,我個人不太推薦配置遠程訪問。所以有需要了解遠程設置的童鞋請自行解決,我不負責?

知識點

?關于遠程設置,千萬別忘記修改/etc/mysql/my.cnf文件,把bind-address = 127.0.0.1開啟 。

?如果在后續(xù)開發(fā)過程中遇到了類似下面這個錯誤,

SELECT list is not in GROUP BY clause and contains nonaggregated column 錯誤

解決辦法:得修改/etc/mysql/mysql.cnf 文件,添加下面一行代碼

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

?啟動和停止MySql服務:

$    sudo /etc/init.d/mysql start
$    sudo /etc/init.d/mysql stop
$    sudo /etc/init.d/mysql restart
PHP7配置 安裝

因為PHP7并不在Ubuntu 16.04的預備庫中,所以需要借用第三方倉庫安裝:

// 由于我裝的是7.1版本的PHP,所以僅以此為例,各位看官自行參考
$    sudo apt-add-repository ppa:ondrej/php  
$    sudo apt-get install php7.1 php7.1-fpm

// 然后可執(zhí)行下面命令決定安裝那些php組件
$    sudo apt-cache search php7.1

// 我選擇的組件是:
$    sudo apt-get install php7.1-cli php7.1-common php7.1-json php7.1-opcache php7.1-mysql php7.1-mbstring php7.1-mcrypt php7.1-zip php7.1-xml php7.1-gd php7.1-curl php7.1-soap php-mongodb php-uuid php-radius php-http php-memcached php-memcache php-mailparse php-sass php7.1-bcmath
配置php.ini

經(jīng)過上面的幾個命令,PHP安裝成功后,接下來我們需要走一些基本配置。首先是要找到你的php.ini文件,捂臉吶喊在哪里是沒有用的,要用下面的命令來找:

// 查找php.ini文件。這里要注意很多網(wǎng)上的文章只給出默認的路徑但不是真正的執(zhí)行的路徑。
$    php --ini |grep Loaded

// 然后打開php.ini
$    vim /path_to_php_ini/php.ini 

找到 cgi.fix_pathinfo=0 并且取消注釋并且設置值為0 這是一個很不安全的設置,因為它告訴PHP如果找不到請求的文件(比如:store.php),那么就試圖執(zhí)行最接近的文件(比如:stores.php)。問你怕沒??

控制php腳本能訪問的目錄。使用open_basedir選項能夠控制PHP腳本只能訪問指定的目錄,這樣能夠避免PHP腳本訪問不應該訪問的文件,一定程度上限制了phpshell的危害。

關閉危險函數(shù)。如果打開了安全模式,那么函數(shù)禁止是可以不需要的,但是我們?yōu)榱税踩€是考慮進去。disable_functions = system,passthru,exec,shell_exec,popen,phpinfo

關閉PHP版本信息。為了防止黑客通過telnet獲取服務器中php版本的信息,可以選擇關閉該信息斜路:expose_php = Off

防止SQL注入。設置magic_quotes_gpc = On將自動把用戶提交對sql的查詢進行轉換,比如把 " 轉為 "等,這對防止sql注射有重大作用。

錯誤信息控制。display_errors = Off將全部關閉錯誤信息顯示,如果必須要顯示建議控制錯誤顯示級別: error_reporting = E_WARNING & E_ERROR。 當然如果是開發(fā)環(huán)境另當別論。這里要特別注意一下,在Ubuntu系統(tǒng)里,如果需要顯示php錯誤,要修改pool.d文件:

$    sudo vim /etc/php/7.1/fpm/pool.d  
// 找到并修改catch_workers_output = yes 來顯示php錯誤

配置完后要記得重啟PHP.

PhpMyAdmin配置 安裝

啥也不說了,開整:

$    sudo apt install phpmyadmin

注意 這里沒有Nginx的選項,所只需要點擊TAB按鍵,然后選擇OK,然后點擊回車鍵

下面這一步要選擇Yes:

下面這一步請輸入一個高強度密碼:

知識點

這里提前說一下,在域名配置完成后,當你訪問你的phpMyAdmin(這里登陸是用到了之前設置的root用戶跟密碼)的時候你會看到很多系統(tǒng)的數(shù)據(jù)庫,如果你不想顯示這些系統(tǒng)信息可以通過修改數(shù)據(jù)庫配置文件隱藏相關數(shù)據(jù)庫。

phpMyAdmin的config文件在: /var/lib/phpmyadmi/config.inc.php 如果你沒有找到這個文件,那么你可以執(zhí)行下面的命令:

$    sudo mv /usr/share/phpmyadmin/config.sample.inc.php /var/lib/phpmyadmin/config.inc.php

然后你可以添加下面的code在該文件最后:

$cfg["Servers"][$i]["hide_db"] = "^(information_schema|performance_schema|mysql|phpmyadmin|sys)$";
// 你可以根據(jù)自己的需要選擇隱藏不同的數(shù)據(jù)庫

然后還要記得填寫一個加密鹽,不然會報錯。

$cfg["blowfish_secret"] = "寫入你自己的加密字串" ; 
/* 例如:bc9{8IdRoGm5Sdf(qt!s */
騰訊云域名配置

各種云的域名解析界面做的都非常友好,很直接。在這里我就簡單說幾個知識點方便大家快速理解跟配置域名。

知識點

?首先的首先,無論你的域名是否在其他地方備案成功,騰訊云都要求你在他們那里在備案一次,不然網(wǎng)站訪問不了。

?首先,如果你的域名是在騰訊云以外的商家買的,你要去到你的域名管理界面修改域名的DNS設置,指向騰訊云。

f1g1ns1.dnspod.net
f1g1ns2.dnspod.net

這個文檔,騰訊云的官網(wǎng)寫的比較詳細,可自行參考。點擊這里產(chǎn)看手冊

?其次,假設你的域名是rocknroll.com,服務器外網(wǎng)IP為119.29.1.1

如果你希望訪客可以通過: www.rocknroll.com訪問你的網(wǎng)站,設置為:

如果你希望訪客可以通過: rocknroll.com訪問你的網(wǎng)站,設置為:

如果你希望將某些地址指向CDN,比如說圖片地址,設置為:

如果你希望所有的子域名(*.rocknroll.com)都可以訪問,設置為:

都設置好后給騰訊云一些時間,然后你就可以ping你的網(wǎng)址,如果一切順利將會返回你的外網(wǎng)IP:

$    ping rocknroll.com

// 你的外網(wǎng)IP會返回

其他關于的記錄CNAME、TXT、MX、AAAA、SRV等等可以參考官網(wǎng)手冊

HTTPS配置

為什么需要HTTPS?因為26歲以上的程序猿、工程獅都覺得需要,你自己看著辦吧。

騰訊云提供了免費的SSL證書,雖然級別不高,不過對普通人絕對夠了,這點要給肥鵝個贊。

首先,打開SSL證書管理,然后點擊購買證書:

然后選擇域名型免費版(DV):

然后就填寫信息:

騰訊云基本上用不了20分鐘就會批準https申請,并且會發(fā)送一封郵件到上面指定的郵箱。 收到郵件后可以去下載編輯好的SSL文件。下載后,可以通過scp命令上傳到你的網(wǎng)站上,因為我們的服務器是Nginx,所以你要記得選擇打開Nginx文件夾。

知識點

?上傳跟管理SSL證書:

$    scp /本地機目錄Nginx/1_domain_bundle.crt ssh ubuntu@119.29.1.1:/tmp
$    scp /本地機目錄Nginx/2_domain_.key ssh ubuntu@119.29.1.1:/tmp

//  ubuntu  是騰訊云提供的用戶名
//  119.29.1.1 是你網(wǎng)站的外網(wǎng)ip
//  tmp文件夾是服務器文件夾可以不用修改權限直接上傳

然后要建立文件夾來管理你的SSL證書,我的習慣是在/etc/ssl/下面創(chuàng)建立相應的域名管理對應的SSL證書:

$    sudo mkdir cd /etc/ssl/domain.com
$    sudo mv /tmp/1_domain_bundle.crt /etc/ssl/domain.com
$    sudo mv /tmp/2_domain_.key /etc/ssl/domain.com
完事具備 只欠東風破

前面安裝的各種組件都是為了這個最后的組合:建立Nginx網(wǎng)站對應文件:Server Block。在Nginx配置里面我介紹了2個特殊目錄:

/etc/nginx/sites-available/ 這個目錄可以理解為你所有網(wǎng)站的配置文件目錄,但是并不是所有的網(wǎng)站都發(fā)布了。

/etc/nginx/sites-enabled/ 這個目錄是你所有發(fā)布的網(wǎng)站的配置文件目錄。是通過symbolic
link連接起來了,所有網(wǎng)站都是已經(jīng)發(fā)布的網(wǎng)站。

這連個目錄就是Ngixn網(wǎng)站的核心配置文件。他們的關系是:sites-available是本體;sites-enabled是分身。初級的設置是:在你的服務器上每個網(wǎng)站擁有一個單一的配置文件并且存放到本體里面。然后根據(jù)需要可以開啟一個對應的分身去打,去浪,去碰撞。

// 主體目錄結構。我個人喜好用域名做為文件夾的名字,這個完全取決于個人。
etc/nginx/sites-available/
                    - rocknroll.com
                    - me.rocknroll.com
                    - phpmyadmin.rocknroll.com

// 建立對應的分身:
$    sudo ln -s  /etc/nginx/sites-available/rocknroll.com  /etc/nginx/sites-enabled/    
$    sudo ln -s  /etc/nginx/sites-available/me.rocknroll.com  /etc/nginx/sites-enabled/  
$    sudo ln -s  /etc/nginx/sites-available/phpmyadmin.rocknroll.com  /etc/nginx/sites-enabled/    

// 分身目錄結構
etc/nginx/sites-enabled/
                    - rocknroll.com
                    - me.rocknroll.com
                    - phpmyadmin.rocknroll.com                  

網(wǎng)站骨架搭好了,現(xiàn)在我們來介紹怎樣網(wǎng)站配置Server Block。舉個例子,如果通過phpmyadmin.rocknroll.com訪問我們之前設置好的phpMyAdmin軟件,可以通過穿件配置文件達到目的:

// 網(wǎng)上有很多不同的方法生成下列文件,我這里列出來的是相對容易理解跟閱讀的初級設置方法,僅供參考

server {
        listen                    80;  # 監(jiān)聽80端口                               
        root                      /usr/share/phpmyadmin;    # 網(wǎng)站的絕對路徑       
        index                     index.php index.html index.htm index.nginx-debian.html;  # Index的可執(zhí)行文件
        server_name               phpmyadmin.rocknroll.com; # 你的域名。這里可以用變量代替域名$host
        rewrite                   (.*) https://phpmyadmin.rocknroll.com$1 permanent; # 跳轉到HTTPS協(xié)議。這里可以用變量代替域名$host
}

server {
    listen                        443;  # 監(jiān)聽443端口
    server_name                   phpmyadmin.rocknroll.com; # 你的域名。
    
    # 以下為SSL證書設置
    ssl                           on;
    ssl_certificate               /etc/ssl/phpmyadmin.rocknroll.com/1_phpmyadmin.rocknroll.com_bundle.crt; # 存放SSL證書的絕對路徑
    ssl_certificate_key           /etc/ssl/phpmyadmin.rocknroll.com/2_phpmyadmin.rocknroll.com.key; # 存放SSL證書的絕對路徑
    ssl_session_timeout           5m;
    ssl_protocols                 TLSv1 TLSv1.1 TLSv1.2; # 按照這個協(xié)議配置
    ssl_ciphers                   ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; # 按照這個套件配置
    ssl_prefer_server_ciphers     on;
    
    
    root                          /usr/share/phpmyadmin; # 網(wǎng)站的絕對路徑 
    access_log                    /var/log/nginx/phpmyadmin.rocknroll.com.access.log;  # 網(wǎng)站的訪問日志
    error_log                     /var/log/nginx/phpmyadmin.rocknroll.com.error.log;   # 網(wǎng)站的錯誤日志 

    #location決定客戶端發(fā)過來的請求URI如何處理
    
    location / { # 處理所有請求
        index                     index.php;       
        try_files                 $uri $uri/ /index.php$is_args$query_string;
    }

    location ~ .php$ { # 處理以php結尾的文件的所有請求
        try_files                 $uri =404;
        fastcgi_pass              unix:/run/php/php7.1-fpm.sock;
        fastcgi_index             index.php;
        fastcgi_param             SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include                   /etc/nginx/fastcgi_params;
    }
}

關于配置文件,我們需要注意的幾個關鍵點:

檢測配置文件是否正確:

# 每次修改配置文件都要檢查一下,如果有錯誤會報錯。
$    sudo nginx -t   

# 然后根據(jù)需要重啟相關服務。
$    sudo /etc/init.d/nginx restart     //重啟Nginx
$    sudo /etc/init.d/php7.1-fpm restart    //重啟PHP

網(wǎng)站的絕對路徑,Nginx通常的配置喜歡是將網(wǎng)站放置到/var/www/html這個目錄下面,當然也可以根據(jù)個人喜歡放到其他路徑下面。好比我個人比較偏向放到 /srv/www下面.

root                      /usr/share/phpmyadmin;    
# 網(wǎng)站的絕對路徑, 如有需要可以創(chuàng)建

網(wǎng)站域名:

server_name               phpmyadmin.rocknroll.com;
# 這里是指定你的域名,可以是一個可以是多個, 用空格鏈接。這樣如果有用戶訪問該域名就會自動檢測這里配對其他設置。

強制HTTPS訪問

rewrite                   (.*) https://phpmyadmin.rocknroll.com$1 permanent;
# 這個是Nginx用于跳轉的一種方法, 類似htaccess的rewrite,主要是目的是強制改成https訪問增加安全性
大功告成

到此為止,LEMP(Linux, Nginx, MySQL, PHP)服務器的基礎設置完成!

最后簡單說一下基礎的服務器安全問題。

要時常更新服務器軟件 $ sudo apt-get update && apt-get -s upgrade 這樣可以杜絕很多最新的服務器腳本漏洞

能不用遠程就不用遠程。如果實在要用請加強密碼設置。堅決不是用root遠程。并且改掉22端口: 修改/etc/ssh/sshd_config 取消 #Port 22的注釋改成其他號碼。一定要記得重啟sshd服務。

隱藏Nginx的版本號碼。大牛可以根據(jù)這個查找對應版本漏洞攻擊你的網(wǎng)站。 修改 /etc/nginx/nginx.conf文件,設置server_tokens off;

強制使用HTTPS協(xié)議。

數(shù)據(jù)庫也不要開啟遠程,要強制設置bind-address = 127.0.0.1在文件/etc/mysql/my.cnf里面

PHP的安全要記得設置disable_functions禁止不安全函數(shù),控制最大文件上傳Size,然后記得修改max_execution_time, max_input_time, memory_limit, 記得修改cgi.fix_pathinfo=0

總算嘚啵完了,大家辛苦了?

*本文的一些圖片來自網(wǎng)絡,如有任何侵權告之必刪

提前打個廣告:下一期我來說說怎么在開發(fā)環(huán)境(staging) 跟生產(chǎn)環(huán)境(production)下發(fā)布網(wǎng)站

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/28201.html

相關文章

  • 起飛系列騰訊配置Ubuntu16.04, Nginx, PHP 7, MySql, PhpM

    摘要:這個文檔,騰訊云的官網(wǎng)寫的比較詳細,可自行參考。騰訊云提供了免費的證書,雖然級別不高,不過對普通人絕對夠了,這點要給肥鵝個贊。 前言 公司業(yè)務擴展需要大力提高微信用戶的關注度,但是主服務器都在境外,國內客戶訪問速度成為了最大的障礙。先后試驗過CloudFlare跟騰訊DNS加速,但是都無法逾越我們的萬里長城萬里長。所以決定將服務區(qū)塊整體遷移,將國際跟國內業(yè)務分開。在對比了騰訊跟阿里兩朵...

    elisa.yang 評論0 收藏0
  • Ubuntu16.04 lnmp 環(huán)境搭建

    摘要:環(huán)境搭建安裝之后訪問出現(xiàn)歡迎界面安裝注意可以查詢模塊擴展安裝注意期間要設置密碼,填兩次密碼,注意查看和通信有種方式,一種是方式,還有種是方式。 Ubuntu16.04 lnmp 環(huán)境搭建 nginx 安裝 sudo apt-add-repository ppa:nginx/stablesudo apt-add-repository ppa:ondrej/phpsudo apt upda...

    hufeng 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<