Linux基礎第三天—Linux的軟連結與硬連結、安裝nginx以及基本配置、LNMP和LAMP的搭建
ln 建立硬連結
ln oldboy.txt oldgirl.txt 建立硬連結,原檔案oldboy.txt寫在前面,兩檔案inode相同,存在同一個block中,
內容同步刪除,但其中一個刪除 另一個並不會消失,因為block,
ln -s 建立軟連結
ln -s oldboy.txt oldgirl.txt 建立軟連結,兩個檔案有兩個inode,inode不同就屬於兩個檔案,生產環境常用
區別:
1)刪除軟連結對原始檔和硬連結無影響
2)刪除硬連結對原始檔和軟連結無影響
3)刪除原始檔對硬連結無影響,軟連結失效。
4)同時刪除原始檔、硬連結檔案,檔案被真正刪除。
5)原始檔和硬連結檔案inode相同,可以認為是同一個檔案,或者是一個檔案的另外一個入口
6)原始檔和軟連結檔案inode不同,是兩個檔案,軟連結相當於是原始檔的快捷方式,含有原始檔的位置指向。
crond(定時任務):
/var/spool/cron
>/dev/null 2>&1 /dev/null是黑洞,正確或者錯誤的都指向黑洞去,即不在終端打印出結果
crontab -e 編輯定時任務檔案
* * * * * 分 時 日 月 周
*/5 * * * * ntpdate time1.aliyun.com >/dev/null 2>&1 每5分鐘同步更新時間,但不將結果列印到終端
ip link set ens33 down ens33連線關閉
ip link set ens33 down 連線開啟
ip addr add 192.1682.12/24 新增第二個ip地址
ip addr del 192.168.2.12/24 dev ens33 刪除ip地址
route -n 檢視路由表
安裝mariaDB資料庫:
yum install mariadb-server -y 安裝mariadb資料庫
rpm -ql mariadb 檢視yum途徑安裝的檔案
vim/etc/my.cnf 編輯Mysql預設配置檔案
datadir=/var/lib/mysql 預設資料目錄
cd /usr/share/
systemctl start mariadb 啟動服務
systemctl enable mariadb 開機自啟
ll /var/lib/mysql/ 啟動服務後生成多個檔案,
包括:idbatal配置檔案,mysql和test庫,performance_schema庫結構檔案,mysql.sock鎖檔案
systemctl status mariadb 檢視狀態
ll /mysql 檢視資料庫中的表
mysql_secure_installation 設定資料庫安全初始化設定
設定root密碼
移除匿名使用者
禁止遠端登入
移除測試資料庫和訪問
重新整理授權表
socket=/var/lib/mysql/mysql.sock 預設鎖檔案
mysql -uroot -p 登入資料庫
grant all on test.* to [email protected]"10.0.0.%" identified by "123456"; 建立test使用者且建立test庫
安裝nginx:
yum install nginx 安裝
--y
rpm -ql nginx 檢視已安裝檔案
vim /etc/nginx/nginx.conf 編輯nginx配置檔案
user nginx; 使用者名稱
worker_processes auto; 程序,按cpu核數來配
error_log /var/log/nginx/error.log; 存放錯誤日誌的路徑
pid /run/nginx.pid; Pid執行檔案
include /usr/share/nginx/modules/*.conf; 模組檔案
events {
worker_connections 1024;
} 允許的最大連線數;由於Linux下一切皆檔案,在Linux下最大連線數為65535
cd /etc/nginx/
cat /etc/passwd 兩條命令檢視建立nginx系統會自動建立的一個虛擬使用者,無法登入,只能啟動nginx服務
http {
log_format main ****** 日誌格式
include /etc/nginx/conf.d/*.conf; 配置檔案路徑,配置檔案存在多個時將匹配多個
server { 網站的伺服器配置
listen 80 default_server;
listen [::]:80 default_server;
server_name _; 設定域名
root /usr/share/nginx/html; 首頁網址html檔案
access_log /var/log/nginx/access.log main; 日誌存放路徑以及所指定使用的日誌格式
systemctl start nginx 啟動nginx服務
ss -lunpt 檢視埠監聽狀態
python3依賴安裝命令:
yum install wget openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel gcc-c++ -y
yum install libxml* -y
./configure --prefix=/usr/local/python3 解壓python3檔案
開啟並進入python3.6.3檔案:
cd /usr/local/python3
make -j2
make install -j2
/usr/local/python3/bin/python3 -v 執行Python3直譯器
ln -s /usr/local/python3/bin/python3 /usr/bin/python3 將python3直譯器執行檔案進行軟連結(即放入環境變數當中),在任何目錄下都可直接執行
python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3 pip3執行檔案進行軟連結,功能同上
pip3
pip3 install uwsgi 安裝uwsgi包
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi3 uwsgi軟連結,功能同python3以及pip3軟連結
uwsgi3
在使用者家目錄下建立foobar.py檔案:
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello World"]
uwsgi3 --http :9091 --wsgi-file foobar.py --master --processes 4 --threads 2 --stats 127.0.0.1:9191 使用uwsgi部署到9091埠上
瀏覽器中輸入linux伺服器Ip:9091
配置nginx+uwsgi:
nginx配置檔案下新增:
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:9091;
}
如果你的代理/web 伺服器/路由器使用 HTTP 協議,你必須告訴 uWSGI 使用 HTTP 協議
uwsgi3 --socket 127.0.0.1:9091 --wsgi-file foobar.py --master --processes 4 --threads 2 --stats 127.0.0.1:9191
使用uwsgi.ini配置檔案式啟到服務
[[email protected] ~]# cat uwsgi.ini
[uwsgi]
socket=127.0.0.1:9091
wsgi-file=foobar.py
master=true
processes=4
threads=2
stats=127.0.0.1:9191
14.1.5 使用uwsgi部署Django程式
建立Django專案
/usr/local/python3/bin/django-admin startproject mysite
修改mysite/settings.py檔案:
ALLOWED_HOSTS = ["*"]
使用如下方法測試Django網站是否正常:
python3 manage.py runserver 0.0.0.0:9000
如果正常,則使用uWSGI來執行它
uwsgi3 --socket 127.0.0.1:9000 --module mysite.wsgi
啟動後配置nginx
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:9000;
}
同上也可以使用配置檔案方式部署
[[email protected] mysite]# cat uwsgi.ini
[uwsgi]
chdir=/opt/mysite
module=mysite.wsgi
master=true
processes=10
socket=127.0.0.1:9000
LAMP與LNMP架構的區別及其具體的選擇說明:
LAMP==Linux+Apache+Mysql+PHP
LNMP==Linux+Nginx+Mysql+PHP
以上兩隻架構是目前網站的主流架構
LAMP和LNMP最主要的區別在於:
一個使用的是Apache,一個使用的是Nginx。
我們就來說說Apache
Apache是世界是用排名第一的Web伺服器軟體,其幾乎可以在所有廣泛使用的計算機平臺上運營,由於其跨平臺和安全性被廣泛使用,是最流行的Web服務端軟體之一。
相比於nginx,apache有些臃腫,記憶體和CPU開銷較大,效能上有損耗,nginx對於靜態檔案的響應能力遠高apache。
Apache是負載PHP的最佳選擇,如果流量很大的話,可以使用nginx來負載非PHP的Web請求。在整個IT界而言,70%的流量訪問均來源於Apache。
下面說說Nginx
Nginx是一款高效能額Http和反向代理伺服器,也是一個AMAP/POP3/SMTP伺服器,Nginx是由Igor Sysoev為俄羅斯訪問量第二的Rambler.ru站點開發的,第一個公開版本0.1.0釋出於2004年10月4日,2011年6月1日,nginx 1.0.4釋出。
相比於Apache,nginx使用資源更少,支援更多併發連線,效率更高,作為負載均衡伺服器。nginx即可對內進行支援,也可對外進行服務。其還是一款非常優秀的郵件代理伺服器,安裝簡單,配置簡介。
LNMP是Linux+Nginx+Mysql+PHP的組合方式,其特點是利用Nginx的快速與輕量級,替代以前的LAMP(Linux+Apache+Mysql+PHP)的方式。由於安裝方便,並且安裝指令碼也隨時更新。
LNMP方式的優點:佔用VPS資源較少,Nginx配置起來也比較簡單,利用fast-cgi的方式動態解析PHP指令碼。
LNMP方式的缺點:php-fpm元件的負載能力有限,在訪問量巨大的時候,php-fpm程序容易僵死,容易發生502 bad gateway錯誤
綜上所述:
基於 LAMP 架構設計具有成本低廉、部署靈活、快速開發、安全穩定等特點,是 Web 網路應用和環境的優秀組合。若是伺服器配置比較低的個人網站,當然首選 LNMP 架構。
當然,在大流量的時候。把Apache和Nginx結合起來使用,也不失為一個不錯選擇,如下:
LNAMP是Linux+Nginx+Apache+Mysql+PHP的組合方式,其特點是利用Nginx來作為靜態指令碼的解析,而利用 Nginx的轉發特性,將動態指令碼的解析轉交給Apache來處理,這樣,能充分利用兩種Web伺服器的特點,對於訪問量需求較大的站點來說,是一個很不錯的選擇。
LNAMP方式的優點:由於Apache本身處理PHP的能力比起php-fpm要強,所以不容易出現類似502 bad gateway的錯誤。適合訪問量較大的站點使用。
LNAMP方式的缺點:相比LNMP方式會多佔用一些資源,另外,配置虛擬主機需要同時修改Nginx和Apache的配置檔案,要稍微麻煩一些。
---------------------
作者:xzh852330491
來源:CSDN
原文:https://blog.csdn.net/xzh852330491/article/details/78272364
版權宣告:本文為博主原創文章,轉載請附上博文連結!