2020年ubuntu1804安裝nginx最新穩定版1.16詳細教程筆記


第一次使用nginx是2007年,當時主流還是apache。nginx橫空出世,在web2.0的推動下,迅速崛起。眼下已是絕對的主流了。
當時,還有一個輕量級的lighttpd,是德國人寫,剛開始還並駕齊驅。
但nginx之后發展更加迅猛,現在知道和使用lighttpd已經越來越少。
想了解更多三者的信息,請查看apache\nginx\lighttpd的對比分析
廢話說了這么多,進入正題吧。

一、安裝nginx

  1. ubuntu1804當前apt源是1.14版本的,查看方法
sudo apt-cahce show nginx
  1. nginx官網當下最新的文檔版本是1.16了,所以我們需要為apt添加最新的安裝源。
  2. 第一步,准備相關依賴包
sudo apt install curl gnupg2 ca-certificates lsb-release
  1. 第二步,在apt的安裝源中(倉庫)添加nginx的最新的穩定版(stable)的安裝包
echo "deb [arch=amd64] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list
  1. 第三步,添加nginx的安裝源的簽名密鑰,通過apt的安全認證
sudo curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -  #會返回[ok]
  1. 第四步,確認簽名密鑰
sudo apt-key fingerprint ABF5BD827BD9BF62   #如果返回以下信息,說明安裝正確
pub   rsa2048 2011-08-19 [SC] [expires: 2024-06-14]
      573B FD6B 3D8F BC64 1079  A6AB ABF5 BD82 7BD9 BF62
uid   [ unknown] nginx signing key <signing-key@nginx.com>
  1. 第五步,執行安裝命令
sudo apt update
sudo apt install nginx
  • apt update 更新提示錯誤,N: Skipping acquire of configured file 'nginx/binary-i386/Packages' as repository 'http://nginx.org/packages/ubuntu bionic InRelease' doesn't support architecture 'i386'
  • 解決辦法:vim /etc/apt/sources.list.d/nginx.list, 修改為:deb [arch=amd64] http://nginx.org/packages/ubuntu/ bionic nginx 增加 [arch=amd64]
  • apt 指定安裝版本
    • apt-cache madison nginx 查詢出版本
    • apt insatll nginx=Version 安裝指定版本的nginx

二、啟動nginx和nginx常用命令

  1. 啟動/關閉/重啟
sudo /etc/init.d/nginx start/down/restart
  1. nginx優勢:支持熱部署,即可以不中斷服務的同時,修改服務器配置信息
nginx -t  #檢查配置信息是否正確,如果返回seccuessfully,就可以執行,reload的。不管你有多自信,都請先走這一步,養成好習慣。
nginx -s reload    #服務器配置信息,熱部署
  1. nginx常用命令
nginx -s quit         優雅停止nginx,有連接時會等連接請求完成再殺死worker進程  
nginx -s reload     優雅重啟,並重新載入配置文件nginx.conf
nginx -s reopen     重新打開日志文件,一般用於切割日志
nginx -v            查看版本  
nginx -t            檢查nginx的配置文件
nginx -h            查看幫助信息
nginx -V       詳細版本信息,包括編譯參數 
nginx  -c filename  指定配置文件

三、nginx的配置

  1. 配置文件位置.
    • 主配置文件/etc/nginx/nginx.conf
    • 應用配置文件夾, /etc/nginx/conf.d/ 此文件夾下.conf文件都會被載入
  2. 查看default.conf文件
cat /etc/nginx/conf.d/default.conf
server_name localhost   #可以修改成你要綁定的域名
#location root 目錄是 /usr/share/nginx/html/  
  1. 新建一個自己的靜態網站配置
cd /etc/nginx/conf.d/
sudo cp default.conf mysite.conf
vim mysite.conf
#修改,server_name 為 www.mysite.com  (換成你的自己的域名,域名的A記錄已經指向這台服務器)
#修改,location 配置里的 root 為/data/www/mysite 
#保存退出
sudo nginx -t   #檢查我們新建的配置文件是否正確
sudo nginx -s reload   #重新加載配置文件
  1. 解決403的錯誤。
    • 這個時候,直接訪問www.mysite.com,容易出現是403錯誤,訪問被禁止 forbidden
    • 兩個原因,一個是沒有index.html文件(好解決,vim index.html到目錄下),
    • 一個是目錄沒有訪問權限。我們可以設置/data/www/mysite的權限為755
    • nginx安裝后,會默認增加nginx的用戶和組,ch
sudo chmod 755 /data
sudo chmod 755 /data/www
sudo chmod 755 /data/www/mystie   
#為什么要從/data開始,因為nginx的網站目錄的權限,要求父目錄及以上都擁有同樣的權限,需要讀和執行的權限
cat /etc/passwd   #查看所有用戶
cat /etc/group   #查看所有組
chown -R nginx /data/www/mysite
chgrp -R nginx /data/www/mysite
  1. 配置https
    • 前提需要您有你自己域名的ssl認證。個人可以申請一個免費的,網上有資源,自己百度以下
    • 將證書文件傳到服務器,使用的是scp命令將證書拷貝到服務器的/etc/nginx/ssl_certs/目錄下面。現在該目錄下有兩個文件,xxx.pem 和 xxx.key。
    • 在創建配置文件/etc/nginx/conf.d/目錄下創建 myhttps.conf
server {
    listen       443 ssl;
    server_name  www.mysite.com;
    ssl_certificate      /etc/nginx/ssl_certs/xxx.pem;
    ssl_certificate_key  /etc/nginx/ssl_certs/xxx.key;
    #ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;
    location / {
        root   /data/www/mysite;
        index  index.html index.htm;
    }
}

server {
    listen 80;
    server_name wwww.mysite.com; # 你的域名
    # 強制跳轉https
    rewrite ^(.*) https://$server_name$1 permanent;
}                                   
# 保存退出
sudo nginx -t
sudo nginx -s reload


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM