1. 程式人生 > >Linux基礎第三天—Linux的軟連結與硬連結、安裝nginx以及基本配置、LNMP和LAMP的搭建

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 
版權宣告:本文為博主原創文章,轉載請附上博文連結!