☆☆☆☆官方網址☆☆☆☆html
—————————————————————————————————————————————————————nginx
反向代理(Reverse Proxy)方式是指以代理服務器來接受internet上的鏈接請求,而後將請求轉發給內部網絡上的服務器,並將從服務器上獲得的結果返回給internet上請求鏈接的客戶端,此時代理服務器對外就表現爲一個服務器。c++
—————————————————————————————————————————————————————程序員
負載均衡,英文名稱爲Load Balance,是指創建在現有網絡結構之上,並提供了一種廉價有效透明的方法擴展網絡設備和服務器的帶寬、增長吞吐量、增強網絡數據處理能力、提升網絡的靈活性和可用性。其原理就是數據流量分攤到多個服務器上執行,減輕每臺服務器的壓力,多臺服務器共同完成工做任務,從而提升了數據的吞吐量。web
依賴介紹:正則表達式
gcc gcc-c++vim
gcc爲GNU Compiler Collection的縮寫,能夠編譯C和C++源代碼等,它是GNU開發的C和C++以及其餘不少種語言 的編譯器(最先的時候只能編譯C,後來很快進化成一個編譯多種語言的集合,如Fortran、Pascal、Objective-C、Java、Ada、 Go等。) gcc 在編譯C++源代碼的階段,只能編譯 C++ 源文件,而不能自動和 C++ 程序使用的庫連接(編譯過程分爲編譯、連接兩個階段,注意不要和可執行文件這個概念搞混,相對可執行文件來講有三個重要的概念:編譯(compile)、連接(link)、加載(load)。源程序文件被編譯成目標文件,多個目標文件連同庫被連接成一個最終的可執行文件,可執行文件被加載到內存中運行)。所以,一般使用 g++ 命令來完成 C++ 程序的編譯和鏈接,該程序會自動調用 gcc 實現編譯。 gcc-c++也能編譯C源代碼,只不過把會把它當成C++源代碼,後綴爲.c的,gcc把它看成是C程序,而g++看成是c++程序;後綴爲.cpp的,二者都會認爲是c++程序,注意,雖然c++是c的超集,可是二者對語法的要求是有區別的。
make automakebash
make是一個用來控制可執行文件和其餘一些從源文件來的非源代碼文件版本的軟件。Make能夠從一個名爲makefile的文件中得到如何構建你所寫程序的依賴關係,Makefile中列出了每一個目標文件以及如何由其餘文件來生成它。automake是一個從Makefile.am文件自動生成Makefile.in的工具。爲了生成Makefile.in,automake還需用到perl,因爲automake建立的發佈徹底遵循GNU標準,因此在建立中不須要perl。libtool是一款方便生成各類程序庫的工具。
autoconf服務器
autoconf是用來生成自動配置軟件源代碼腳本(configure)的工具
pcre pcre-devel網絡
在Nginx編譯須要 PCRE(Perl Compatible Regular Expression),由於Nginx 的Rewrite模塊和HTTP 核心模塊會使用到PCRE正則表達式語法。
zlip zlib-devel
nginx啓用壓縮功能的時候,須要此模塊的支持。
openssl openssl-devel
開啓SSL的時候須要此模塊的支持。
libtool
libtool是一個通用庫支持腳本,將使用動態庫的複雜性隱藏在統1、可移植的接口中;使用libtool的標準方法,能夠在不一樣平臺上建立並調用動態庫。 libtool主要的一個做用是在編譯大型軟件的過程當中解決了庫的依賴問題;將繁重的庫依賴關係的維護工做承擔下來,從而釋放了程序員的人力資源。libtool提供統一的接口,隱藏了不一樣平臺間庫的名稱的差別等細節,生成一個抽象的後綴名爲la高層庫libxx.la(實際上是個文本文件),並將該庫對其它庫的依賴關係,都寫在該la的文件中。
依賴包安裝:
yum -y install gcc gcc-c++ make automake autoconf pcre pcre-devel zlib zlib-devel openssl openssl-devel libtool
nginx下載:
wget https://nginx.org/download/nginx-1.16.1.tar.gz
解壓編譯安裝:
[root@web01 ~]# tar -zxvf nginx-1.16.1.tar.gz [root@web01 ~]# cd nginx-1.16.1/ 編譯安裝 ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module make && make install
驗證是否安裝成功
[root@web02 ~]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.16.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
目錄 | 做用 |
conf | 用於存儲nginx配置文件 |
html | 用於存放靜態網頁 |
logs | 存放日誌 |
sbin | 用於存放 nginx這種工具 |
vi /lib/systemd/system/nginx.service
[Unit] Description=nginx - high performance web server Documentation=http://nginx.org/en/docs/ After=network.target [Service] Type=forking ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/usr/local/nginx/sbin/nginx -s quit PrivateTmp=true [Install] WantedBy=multi-user.target
Description:描述服務
After:描述服務類別
[Service]服務運行參數的設置
Type=forking是後臺運行的形式
ExecStart爲服務的具體運行命令
ExecReload爲重啓命令
ExecStop爲中止命令
PrivateTmp=True表示給服務分配獨立的臨時空間注意:[Service]的啓動、重啓、中止命令所有要求使用絕對路徑
[Install]運行級別下服務安裝的相關設置,可設置爲多用戶,即系統運行級別爲3
保存退出。
systemctl enable nginx.service
1./etc/init.d/目錄下編輯nginx默認啓動腳本,並添加權限(755):
vim /etc/init.d/nginx
#!/bin/bash #chkconfig: 2345 99 20 #description: nginx-server nginx=/usr/local/nginx/sbin/nginx case $1 in start) netstat -anptu | grep nginx if [ $? -eq 0 ] then echo "nginx-server is already running" else echo "nginx-server begin start" $nginx fi ;; stop) $nginx -s stop if [ $? -eq 0 ] then echo "nginx-server is stoped" else echo "nginx-server stop fail,try again" fi ;; status) netstat -anlpt | grep nginx if [ $? -eq 0 ] then echo "nginx-server is running" else echo "nginx-server is stoped" fi ;; restart) $nginx -s reload if [ $? -eq 0 ] then echo "nginx-server is begin restart" else echo "nginx-server restart fail" fi ;; *) echo "please enter {start restart status stop}" ;; esac exit 0
添加到系統服務:
[root@web01 sbin]# chkconfig --add nginx --將nginx添加到系統服務 [root@web01 sbin]# chkconfig --list nginx --- 查看nginx的運行級別 注意:此輸出僅顯示SysV服務,不包括本機服務 systemd服務。SysV配置數據可能被本機覆蓋 systemd配置。 若是你想列出systemd服務使用'systemctl列表-單元-文件'。 查看在特定目標使用上啓用的服務 「systemctl list-dependencies[目標]」。
nginx 0:off 1:off 2:on 3:on 4:on 5:on 6:off
service 命令:
[root@web01 /]# service nginx stop
[root@web01 /]# service nginx start