Nginx從入門到實戰

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常用命令
  1. 查看版本號
[root@hadoop sbin]# ./nginx -v
nginx version: nginx/1.17.1
  1. 啓動
[root@hadoop sbin]# ./nginx
  1. 關閉
[root@hadoop sbin]# ./nginx -s stop
  1. 重新加載
[root@hadoop sbin]# ./nginx -s reload
  1. 其他

-c 指定配置文件nginx.conf
-p 指定nginx 目錄

更加平滑的啓動方式

./nginx -c /usr/local/nginx/conf/nginx.conf -p /usr/local/nginx/

提示,大家可能在啓動的時候會報錯,找不到配置文件等問題,可以通過這種方式去啓動。

4 Nginx配置文件

1 Nginx 配置文件主要包含三部分
  1. 全局塊
    從配置文件開始到events塊之間的內容,主要設置一些影響nginx服務器整體運行的配置命令,比如 woeker process 1 代表支持的併發處理數量。
  2. events塊
    events塊主要涉及的指令影響Nginx服務器與用戶的網絡連接 worker connection 1024,代表支持的最大連接數;
  3. http塊
    這一部分是配置中頻繁使用的部分,它主要包含http全局塊和server塊;
    server塊的指令主要用於指定主機和端口,upstream指令主要用於負載均衡,設置一系列的後端服務器;location塊用於匹配網頁位置。

5 反向代理實例

反向代理實例1

需求:訪問www.test.com 跳轉到tomcat頁面

  1. 修改windows 上的hosts文件
    192.168.137.130 www.test.com
    其中192.168.137.130爲虛擬機ip。
  2. 修改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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章