Nginx介紹,安裝,配置
阿新 • • 發佈:2020-07-30
引言
為什麼要學習Nginx
問題一: 客戶端到底要將請求傳送給哪臺伺服器?
問題二:如果所有客戶端的請求都發送給了伺服器1,那另一臺豈不是廢了
問題三:客戶端傳送的請求可能是申請動態資源的,也可能是申請靜態資源的
在搭建集群后使用Nginx做反向代理伺服器
Nginx介紹
Nginx是由俄羅斯研發的,應對Ramble的網站,並且2004年釋出第一個版本
Nginx的特點:
- 穩定性機槍,7*24小時不間斷執行
- Nginx提供了非常豐富的配置例項
- 佔用記憶體小,併發能力強
Nginx的安裝
使用docker-compose.yml安裝Nginx
version: '3.1' services: nginx: restart: always image: daocloud.io/library/nginx:latest container_name: nginx ports: - 81:80
在/opt/資料夾下建立一個docker_nginx資料夾
mkdir docker_nginx
在此資料夾下建立一個檔名為docker-compose.yml的檔案將上面的複製進去,儲存退出,在當前資料夾執行
docker-compose up -d
測試是否安裝成功
這時使用瀏覽器訪問ip地址:81顯示如下即安裝成功
Nginx的配置檔案
位置: /etc/nginx/nginx.conf
user nginx; worker_processes1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; # 以上同城全域性模組,
# worker_processes他的數值越大,Nginx的併發能力就越強
# error_log為錯誤日誌
events { worker_connections 1024; } #events塊
#worker_connections他的數值越大,Nginx開發能力越強,上面這倆一般別動,專門的運維人員會操作 http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf;
}
#http塊
#incloude代表引入一個外部的檔案 -> /mine.types中放著大量的媒體型別
#最下面的incloude ->引入了conf.d目錄下的以.conf為結尾的配置檔案,這個才是我們該關注的
#如下,刪除了#註釋的內容,精簡了一下
server { listen 80; listen [::]:80; server_name localhost; location / { root /usr/share/nginx/html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } 127.0.0.1:9000 /scripts$fastcgi_script_name;
#server塊
#listen: 代表Nginx堅挺的埠號
#localhost : 代表Nginx接收請求的ip
#location塊
#root:將接收到的請求根據/usr/share/nginx/html去查詢靜態資源
#index: 預設去上述的路徑中找到index.html或者index.html
}
修改docker-compose檔案
version: '3.1' services: nginx: restart: always image: daocloud.io/library/nginx:latest container_name: nginx ports: - 81:80
volumes:
- /opt/docker_nginx/conf.d/:/etc/nginx/conf.d
首先退出剛才的容器
ctrl+c或者exit
關閉容器docker-compose down
編輯docker-compose.yml:vi docker-compose.yml
加上最後兩行
再重新構建:docker-compose build
重新啟動:docker-compose up -d
然後就會發現當前目錄下會多一個conf.d的目錄但是裡面啥也沒有
這時候剛才的網頁就進不去了,因為沒有server塊,所以進行手動編輯一下
vi default.conf
將以下程式碼複製進去,這裡不是yml檔案所以格式麼有什麼要求分號結尾就行
server{ listen 80; server_name localhost; location / { root /usr/share/nginx/html; index index.html index.htm; }
}
重啟一下:
回到yml檔案所在目錄dicker-compose restart
重啟之後再次重新整理瀏覽器,你又成功了!!!!