1. 程式人生 > 實用技巧 >JavaScript之單執行緒

JavaScript之單執行緒

引言
為什麼要學習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_processes 1;

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

重啟之後再次重新整理瀏覽器,你又成功了!!!!