linux部署Nginx以及簡易圖片服務器搭建

Linux 部署nginx

環境: 百度雲實例 CentOS / 7.5 x86_64 (64bit)

  • 安裝依賴

    • yum install gcc
    • yum install pcre-devel
    • yum install zlib zlib-devel
    • yum install openssl openssl-devel
  1. prce-devel 作用: nginx的rewrite僞靜態匹配規則用到正則,pcre就用來幹這個。
  2. zlib 是一個壓縮和解壓縮模塊
  3. SSL是Secure Socket Layer(安全套接層協議)的縮寫,可以在Internet上提供祕密性傳輸
  • 下載nginx tar包

    // 創建一個文件夾
    cd /usr/local
    mkdir nginx
    cd nginx
    // 下載 tar包
    wget http://nginx.org/download/nginx-1.13.7.tar.gz
    tar -xvf nginx-1.13.7.tar.gz
  • 安裝nginx

    //進入nginx目錄 
    cd /usr/local/nginx/nginx-1.13.7
    //使用默認配置
    ./configure
    //make make install
    make
    make install
  • 安裝好後的目錄如下
  1. conf 目錄下的 nginx.conf 是nginx的配置文件
  2. sbin 目錄下 執行 ./nginx 啓動服務
  • 一些常用命令
  1. 測試配置文件 /ningx/sbin/nginx -t
  2. 啓動命令 安裝路徑下的 /nginx/sbin/nginx
  3. 停止命令 安裝路徑下的 /nginx/sbin/nginx -s stop
  4. 重啓命令 安裝路徑下的 .nginx/sbin/nginx -s reload
  5. 查看進程命令 ps -ef | grep nginx
  6. 平滑重啓 kill -HUP Nginx主進程號

Nginx 映射本地目錄

通過反向代理來做一個簡易的圖片服務器

  • 大致步驟:
  1. 取消註釋開啓日誌,便於出現問題排查

    error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
  2. 修改 nginx/conf/nginx.conf, 存放圖片的目錄被我放在了 /root/pics

    server {
        listen       80;
        server_name  182.61.41.64;
    
        #charset koi8-r;
    
        #access_log  logs/host.access.log  main;
    
        location ^~ /images/ {
            alias   /root/pics/;
            index   1.txt;
        }
  • 過程當中踩到的坑:
  1. 訪問資源出現403 forbidden,查看日誌出現錯誤:

    403 forbidden (13: Permission denied) Nginx 403 forbidden forbidden 403 Permission denied

    原因是目錄權限不夠,解決辦法: 修改web目錄的讀寫權限,或者是把nginx的啓動用戶改成目錄的所屬用戶,重啓Nginx即可解決。

    chmod -R 777 /data

    chmod -R 777 /data/www/

  2. root與alias主要區別——在於nginx如何解釋location後面的uri,這會使兩者分別以不同的方式將請求映射到服務器文件上。

root的處理結果是:root路徑+location路徑
alias的處理結果是:使用alias路徑替換location路徑
alias是一個目錄別名的定義,root則是最上層目錄的定義。
還有一個重要的區別是alias後面必須要用"/"結束,否則會找不到文件的,而root則可有可無。

//root實例:
location ^~ /t/ {
     root /www/root/html/;
}
//如果一個請求的URI是/t/a.html時,web服務器將會返回服務器上的/www/root/html/t/a.html的文件。
//alias實例:
location ^~ /t/ {
     alias /www/root/html/new_t/;
}
//如果一個請求的URI是/t/a.html時,web服務器將會返回服務器上的/www/root/html/new_t/a.html的文件。注意這裏是new_t,因爲alias會把location後面配置的路徑丟棄掉,把當前匹配到的目錄指向到指定的目錄。
注意:
  1. 使用alias時,目錄名後面一定要加"/"。
  2. alias在使用正則匹配時,必須捕捉要匹配的內容並在指定的內容處使用。
  3. alias只能位於location塊中。(root可以不放在location中)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章