### Nginx怎么處理請求的?
* nginx接收一個請求后,首先由listen和server\_name指令匹配server模塊,再匹配server模塊里的location,location就是實際地址。
~~~
server { # 第一個Server區塊開始,表示一個獨立的虛擬主機站點
listen 80; # 提供服務的端口,默認80
server_name localhost; # 提供服務的域名主機名
location / { # 第一個location區塊開始
root html; # 站點的根目錄,相當于Nginx的安裝目錄
index index.html index.htm; # 默認的首頁文件,多個用空格分開
} # 第一個location區塊結果
}
復制代碼
~~~
### 什么是正向代理和反向代理?
1. 正向代理就是一個人發送一個請求直接就到達了目標的服務器
2. 反方代理就是請求統一被Nginx接收,nginx反向代理服務器接收到之后,按照一定的規 則分發給了后端的業務處理服務器進行處理了
### 使用“反向代理服務器的優點是什么?
* 反向代理服務器可以隱藏源服務器的存在和特征。它充當互聯網云和web服務器之間的中間層。這對于安全方面來說是很好的,特別是當您使用web托管服務時。
### Nginx的優缺點?
* 優點:
1. 占內存小,可實現高并發連接,處理響應快
2. 可實現http服務器、虛擬主機、方向代理、負載均衡
3. Nginx配置簡單
4. 可以不暴露正式的服務器IP地址
* 缺點: 動態處理差:nginx處理靜態文件好,耗費內存少,但是處理動態頁面則很雞肋,現在一般前端用nginx作為反向代理抗住壓力,
### Nginx應用場景?
1. http服務器。Nginx是一個http服務可以獨立提供http服務。可以做網頁靜態服務器。
2. 虛擬主機。可以實現在一臺服務器虛擬出多個網站,例如個人網站使用的虛擬機。
3. 反向代理,負載均衡。當網站的訪問量達到一定程度后,單臺服務器不能滿足用戶的請求時,需要用多臺服務器集群可以使用nginx做反向代理。并且多臺服務器可以平均分擔負載,不會應為某臺服務器負載高宕機而某臺服務器閑置的情況。
4. nginz 中也可以配置安全管理、比如可以使用Nginx搭建API接口網關,對每個接口服務進行攔截。
### Nginx目錄結構有哪些?
~~~
[root@localhost ~]# tree /usr/local/nginx
/usr/local/nginx
├── client_body_temp
├── conf # Nginx所有配置文件的目錄
│ ├── fastcgi.conf # fastcgi相關參數的配置文件
│ ├── fastcgi.conf.default # fastcgi.conf的原始備份文件
│ ├── fastcgi_params # fastcgi的參數文件
│ ├── fastcgi_params.default
│ ├── koi-utf
│ ├── koi-win
│ ├── mime.types # 媒體類型
│ ├── mime.types.default
│ ├── nginx.conf # Nginx主配置文件
│ ├── nginx.conf.default
│ ├── scgi_params # scgi相關參數文件
│ ├── scgi_params.default
│ ├── uwsgi_params # uwsgi相關參數文件
│ ├── uwsgi_params.default
│ └── win-utf
├── fastcgi_temp # fastcgi臨時數據目錄
├── html # Nginx默認站點目錄
│ ├── 50x.html # 錯誤頁面優雅替代顯示文件,例如當出現502錯誤時會調用此頁面
│ └── index.html # 默認的首頁文件
├── logs # Nginx日志目錄
│ ├── access.log # 訪問日志文件
│ ├── error.log # 錯誤日志文件
│ └── nginx.pid # pid文件,Nginx進程啟動后,會把所有進程的ID號寫到此文件
├── proxy_temp # 臨時目錄
├── sbin # Nginx命令目錄
│ └── nginx # Nginx的啟動命令
├── scgi_temp # 臨時目錄
└── uwsgi_temp # 臨時目錄
~~~
### Nginx配置文件nginx.conf有哪些屬性模塊?
~~~
worker_processes 1; # worker進程的數量
events { # 事件區塊開始
worker_connections 1024; # 每個worker進程支持的最大連接數
} # 事件區塊結束
http { # HTTP區塊開始
include mime.types; # Nginx支持的媒體類型庫文件
default_type application/octet-stream; # 默認的媒體類型
sendfile on; # 開啟高效傳輸模式
keepalive_timeout 65; # 連接超時
server { # 第一個Server區塊開始,表示一個獨立的虛擬主機站點
listen 80; # 提供服務的端口,默認80
server_name localhost; # 提供服務的域名主機名
location / { # 第一個location區塊開始
root html; # 站點的根目錄,相當于Nginx的安裝目錄
index index.html index.htm; # 默認的首頁文件,多個用空格分開
} # 第一個location區塊結果
error_page 500502503504 /50x.html; # 出現對應的http狀態碼時,使用50x.html回應客戶
location = /50x.html { # location區塊開始,訪問50x.html
root html; # 指定對應的站點目錄為html
}
}
......
~~~
### 如何用Nginx解決前端跨域問題?
* 使用Nginx轉發請求。把跨域的接口寫成調本域的接口,然后將這些接口轉發到真正的請求地址。
### Nginx虛擬主機怎么配置?
* 1、基于域名的虛擬主機,通過域名來區分虛擬主機——應用:外部網站
* 2、基于端口的虛擬主機,通過端口來區分虛擬主機——應用:公司內部網站,外部網站的管理后臺
* 3、基于ip的虛擬主機。
- 文章翻譯
- Large-scale cluster management at Google with Borg
- Borg Omega and kubernetes
- scaling kubernetes to 7500 nodes
- bpf 的過去,未來與現在
- Demystifying Istio Circuit Breaking
- 知識圖譜
- skill level up graph
- 一、運維常用技能
- 1.0 Vim (編輯器)
- 1.1 Nginx & Tengine(Web服務)
- 基礎
- 1.2 zabbix
- 定義
- 登錄和配置用戶
- 1.3 RabbitMQ(消息隊列)
- 原理
- RabbitMQ(安裝)
- 1.4虛擬化技術
- KVM
- 1.5 Tomcat(Web中間件)
- 1.6Jenkins
- pipline
- 1.7 Docker
- network
- 1.8 Keepalived(負載均衡高可用)
- 1.9 Memcache(分布式緩存)
- 1.10 Zookeeper(分布式協調系統)
- 1.11 GitLab(版本控制)
- 1.12 Jenkins(運維自動化)
- 1.13 WAF(Web防火墻)
- 1.14 HAproxy負載均衡
- 1.15 NFS(文件傳輸)
- 1.16 Vim(編輯器)
- 1.17 Cobbler(自動化部署)
- 二、常用數據庫
- 2.1 MySQL(關系型數據庫)
- mysql主從復制
- 2.2 Mongodb(數據分析)
- 2.3 Redis(非關系數據庫)
- 三、自動化運維工具
- 3.1 Cobbler(系統自動化部署)
- 3.2 Ansible(自動化部署)
- 3.3 Puppet(自動化部署)
- 3.4 SaltStack(自動化運維)
- 四、存儲
- 4.1 GFS(文件型存儲)
- 4.2 Ceph(后端存儲)
- 五、運維監控工具
- 5.1 云鏡
- 5.2 ELK
- 六、運維云平臺
- 6.1 Kubernetes
- 6.2 OpenStack
- 介紹
- 安裝
- 七、Devops運維
- 7.1 理念
- 7.2 Devops運維實戰
- 八、編程語言
- 8.1 Shell
- 書籍《Wicked Cool Shell Scripts》
- 8.2 Python
- 8.3 C
- 8.4 Java
- leecode算法與數據結構
- 九、雜記
- 高優先級技能
- 知識點
- JD搜集
- 明顯的短板
- 1.0 Python
- 1.1 Kubernetes
- 1.18.2 《kubernetes in action》
- 遺漏知識點
- 1.18.3 GCP、azure、aliyun
- Azure文檔
- 1.18.5 《program with kubernetes》
- Istio
- HELM
- 《Kubernetes best practice》
- Kubernetes源碼學習
- Scheduler源碼
- 調度器入口
- 調度器框架
- Node篩選算法
- Node優先級算法
- pod搶占調度
- 入口
- 主要代碼結構
- new
- 文章翻譯
- Flannel
- 從二進制集群搭建
- 信息收集
- docker優化
- 1.2 shell
- 面試題
- grep awk sed 常見用法
- shell實踐
- 1.3 Data structure(數據結構)
- Calico
- Aliyun文檔以及重點模塊
- git
- 大數據組件
- 前端,后端,web框架
- cgroup,namespace
- 內核
- Linux搜集
- crontab
- centos7常用優化配置
- centos Mariadb
- eBPF
- ebpf的前世今生
- Linux性能問題排查與分析
- 性能分析搜集
- 性能分析常用10條
- 網絡性能優化
- 文本處理命令
- sql
- Iptables
- python面試題
- iptables
- iptables詳細
- zabbix面試題,proj
- prometheus
- web中間件
- nginx
- Haproxy
- grep sed awk
- Linux常用命令
- 云平臺
- 書籍Linux應用技巧
- kafka
- kafka面試題
- ETCD
- Jenkins
- 3天補充的點
- K8s源碼
- K8s
- k8s實操
- etcd
- test
- BPF
- PSFTP使用
- StackOverflow問答精選
- 問題
- 我對于學習思考
- 修改ssh超時時間
- 課程目錄
- 運維與運維開發
- The Person
- 個人雜談
- mysql主從復制
- 對于工作的認識與思考