0 概述
最近在進行項目開發,用到了Nginx做代理,訪問前端靜態資源,以前也只是聽過,沒有系統的學習,最近有時間進行了學習,做了一些簡單的總結,以及學習案例。
1 Nginx 簡介
1 什麼是Nignx
Nginx是一個高性能的Http和反向代理服務器,特點是佔用內存少,併發性能力強,專門爲性能優化而開發,經受高負載的考驗。
2 反向代理
Nginx不僅可以做反向代理,實現負載均衡,還能做正向代理進行上網等goon功能。下面我們看看什麼是正向代理。
正向代理,如果把局域網外的internet想象成一個巨大的資源庫,則局域網的客戶端要訪問internet,需要通過代理服務器來訪問,這種就是正向代理。
**反向代理:**反向代理,其實客戶端對代理時無感知的,因爲客戶端不需要任何配置就可以訪問,我們只需要將請求發送到反向代理服務器,又反向代理服務器去選擇目標服務器獲取數據,在返回給客戶端,此時反向代理服務器和目標服務器就是一個服務器,暴漏的時代理服務器地址,隱藏了真實服務器的IP地址。
3 負載均衡
負載均衡也是 Nginx 常用的一個功能,負載均衡其意思就是分攤到多個操作單元上進行執行,例如:Web服務器、FTP服務器、企業關鍵應用服務器和其它關鍵任務服務器等,從而共同完成工作任務。簡單而言就是當有2臺或以上服務器時,根據規則隨機的將請求分發到指定的服務器上處理,負載均衡配置一般都需要同時配置反向代理,通過反向代理跳轉到負載均衡。而Nginx目前支持自帶3種負載均衡策略,還有2種常用的第三方策略。
4 動靜分離
爲了加快網站的解析速度,可以把動態頁面和靜態頁面由不同的服務器來解析,加快解析速度,降低原來單個服務器的壓力。
2 Linux下安裝Nginx
官網:http://nginx.org/en/
這裏我實在官網先下載好的安裝包上傳到服務器上的。
使用如下命令也可以
wget http://nginx.org/download/nginx-1.17.1.tar.gz
版本:nginx-1.17.1.tar.gz
在安裝前需要做一些準備工作:
- 安裝依賴包
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
- 解壓
cd /opt/software
tar -xzvf nginx-1.17.1.tar.gz
- 安裝
cd /opt/software/nginx-1.17.1
./configure
make && make install
- 啓動
此時安裝好後要去/usr/local/nginx目錄下去執行
cd /usr/local/nginx/sbin
./nginx
[root@hadoop sbin]# ps -ef|grep nginx
root 10305 1 0 00:16 ? 00:00:00 nginx: master process ./nginx
nobody 10306 10305 0 00:16 ? 00:00:00 nginx: worker process
root 10500 10455 0 01:31 pts/0 00:00:00 grep nginx
3 常用命令
nginx常用命令
- 查看版本號
[root@hadoop sbin]# ./nginx -v
nginx version: nginx/1.17.1
- 啓動
[root@hadoop sbin]# ./nginx
- 關閉
[root@hadoop sbin]# ./nginx -s stop
- 重新加載
[root@hadoop sbin]# ./nginx -s reload
- 其他
-c 指定配置文件nginx.conf
-p 指定nginx 目錄
更加平滑的啓動方式
./nginx -c /usr/local/nginx/conf/nginx.conf -p /usr/local/nginx/
提示,大家可能在啓動的時候會報錯,找不到配置文件等問題,可以通過這種方式去啓動。
4 Nginx配置文件
1 Nginx 配置文件主要包含三部分
- 全局塊
從配置文件開始到events塊之間的內容,主要設置一些影響nginx服務器整體運行的配置命令,比如woeker process 1
代表支持的併發處理數量。 - events塊
events塊主要涉及的指令影響Nginx服務器與用戶的網絡連接worker connection 1024
,代表支持的最大連接數; - http塊
這一部分是配置中頻繁使用的部分,它主要包含http全局塊和server塊;
server塊的指令主要用於指定主機和端口,upstream指令主要用於負載均衡,設置一系列的後端服務器;location塊用於匹配網頁位置。
5 反向代理實例
反向代理實例1
需求:訪問www.test.com 跳轉到tomcat頁面
- 修改windows 上的hosts文件
192.168.137.130 www.test.com
其中192.168.137.130爲虛擬機ip。 - 修改nginx配置文件:
server {
listen 80;
server_name 192.168.137.130;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
proxy_pass http://127.0.0.1:8080;
index index.html index.htm;
}
需要修改如下兩處:
server_name 192.168.137.130;
proxy_pass http://127.0.0.1:8080
以上配置完成那訪問:www.test.com頁面就會跳轉到tomcat頁面,這裏tomcat 安裝我就不說了(ootb)
//TODO