作者:馬哥面授班26期學園 阿龍
來源:見文末
總專案流程圖,詳見 http://www.cnblogs.com/along21/p/8000812.html
實戰一:搭建lnmp及類小米等商業網站的實現
環境:關閉防火牆,selinux
1、安裝包,開啟服務
yum -y install nginx mariadb-server php-fpm php-mysql
systemctl start nginx
systemctl start mariadb
systemctl start php-fpm
2、修改nginx的配置檔案
(1)cp /etc/nginx/nginx.conf.default /etc/nginx/nginx.conf 有個模板例子改寫了配置檔案
vim /etc/nginx/nginx.conf 修改下麵幾類
① user nobody; 使用使用者
error_log /var/log/nginx/error.log info; 錯誤日誌
② events {
worker_connections 65535;
}
③ tcp_nopush on; tcp最佳化
tcp_nodelay on;
gzip on;
④ server {
listen 80;
server_name xiaomi.along.com; 根據自己順便寫
root /data/web; 主站點的目錄根
location / {
index index.php index.html index.htm;
}
⑤ location ~ \.php$ { 開啟.php,配置檔案有例子,只需去掉註釋,修改一行即可
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
(2)修改完,可以nginx -t 檢視
systemctl restart nginx 重啟服務,發現有warn
(3)ulimit -n 檢視linux系統裡開啟檔案描述符的最大值,一般預設值是1024,對一臺繁忙的伺服器來說,這個值偏小,所以有必要重新設定linux系統裡開啟檔案描述符的最大值
ulimit -n 65535 修改核心引數
3、修改php-fpm的配置檔案
① vim /etc/php.ini 改兩行
date.timezone = Asia/Shanghai 時區
short_open_tag = On 允許短標簽
② vim /etc/php-fpm.d/www.conf 改兩行
user = nobody
group = nobody
③ systemctl restart php-fpm
4、執行mysql ,建立一會網頁需要的庫
create database xiaomi;
5、把事先找好的小米網站傳進來 rz
小米網站的原始碼資源我已經上傳到網盤了http://pan.baidu.com/s/1kUUFp6B ,需要的私密我
mkdir /data/web -p 建立一個目錄專門放小米的網頁配置
unzip -d /data/web/ xiaomi.zip 解壓到目錄
cd /data/web/
chown -R nobody.nobody * 為了安全,遞迴把所有檔案的所屬人和所屬組改為許可權有限的nobody
6、網頁登入
① 使用者:admin
密碼:123456
② 引數設定:就是連線上自己的資料庫
也可以在命令列連上自己的資料庫:
vim /data/web/data/config.php
③ 把資料寫到資料庫中,恢復資料
7、實驗成功,登入檢視
後臺登入,可以自己隨便修改
http://192.168.30.107/admin
8、ab 可以壓力測試
ab -c 100 -n 1000 http://192.168.30.107/
實驗二:實現ssl 加密
(1)一個物理伺服器設定一個https
1、建立存放證書的目錄
mkdir /etc/nginx/ssl
2、自簽名證書
cd /etc/pki/tls/certs/
make nginx.crt
openssl rsa -in nginx.key -out nginx2.key 因為剛私鑰被加密了,為了後邊方便,解密
3、把證書和私鑰cp 到nginx存放證書目錄
cp nginx.crt nginx2.key /etc/nginx/ssl/
cd /etc/nginx/ssl/
mv nginx2.key nginx.key 把名字改回來
4、修改配置檔案,加一段server
server {
listen 443 ssl;
server_name www.along.com;
ssl on;
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
ssl_session_cache shared:sslcache:20m;
ssl_session_timeout 10m;
}
5、測試,網頁開啟 https://192.168.30.7/
windows 信任證書
(2)因為nginx 強大,可以實現多個虛擬主機基於不同的FQDN 實現ssl加密,httpd不能實現
一個物理伺服器設定多個https
1、生成3個證書和私鑰
make nginx.crt
make nginx2.crt
make nginx3.crt
2、把證書和私鑰cp 到nginx存放證書目錄,並解開私鑰的加密
cp nginx{1,2,3}* /etc/nginx/ssl/
openssl rsa -in nginx.key -out nginx.key
openssl rsa -in nginx2.key -out nginx2.key
openssl rsa -in nginx3.key -out nginx3.key
3、建立各自對應的訪問網頁
mkdir /app/website{1,2,3}
echo website1 > /app/website1/index.html
echo website1 > /app/website2/index.html
echo website1 > /app/website3/index.html
4、測試訪問,成功
實戰三:實現身份驗證
1、生成密碼賬戶檔案
cd /etc/nginx/conf.d
htpasswd -c -m .htpasswd http1
htpasswd -m .htpasswd http2
2、在配置檔案中修改
vim /etc/nginx/nginx.conf 在location段中指向賬戶密碼檔案
location /images {
auth_basic "images site"; "提示字" auth_basic_user_file /etc/nginx/conf.d/.htpasswd;
}
3、網頁檢視驗證 http://172.17.22.22/images/loading.gif
作者:阿龍
來源:http://www.cnblogs.com/along21/p/7822228.html
《Linux雲端計算及運維架構師高薪實戰班》2018年11月26日即將開課中,120天衝擊Linux運維年薪30萬,改變速約~~~~
*宣告:推送內容及圖片來源於網路,部分內容會有所改動,版權歸原作者所有,如來源資訊有誤或侵犯權益,請聯絡我們刪除或授權事宜。
– END –