nginx打點伺服器搭建
1. 如何運用Nginx搭建代理伺服器
如何實現Nginx的反向代理?
這句話什麼意思?
意思是說當客戶機來訪問伺服器的時候,伺服器本身並不出面接待,而是將客戶的請求轉高給手下的子伺服器(小弟)負責接待。
比如:你訪問www..com,其實並不時網路總伺服器接待的你,而是網路的代理伺服器接待的你,不過他們的服務是一樣的,提供同樣的頁面;
如是搭建Nginx服務才能實現這樣的效果呢?
搭建一個最簡單,最基礎nginx代理伺服器,需要一台代理服務,兩檯子伺服器,XX台客戶機來作驗證;
操作流程如下:
第一步、伺服器和客戶機配好IP地址,其中Nginx代理伺服器需要配置兩張網卡,兩個IP地址,一個和客戶機通信,一個和子伺服器通信;
代理伺服器與客戶機和子伺服器都分別配置同網段IP地址;
例如:
代理伺服器:192.168.4.5 192.168.2.5
子伺服器 :192.168.2.100 192.168.2.200
客戶機 :192.168.4.10
這樣配置的好處是: 可以負載均衡,保障用戶的訪問體驗,保障上網速度,同時也保障了,即便有一台伺服器壞掉了,另一台服務可以接待用戶訪問;
第二步、代理伺服器上安裝Nginx服務軟體,兩檯子伺服器上安裝HTTPD服務並寫入相應的網頁,然後啟動服務;
yum -y install httpd ##安裝httpd服務;
echo "羅貴" > /var/www/html/index.html ##寫一個簡單的網頁
./configure --user=nginx --group=nginx --with-http_ssl_mole
make && make install ##編譯安裝Nginx
第三步、修改Nginx的配置文件;
vim /usr /local /nginx /conf /nginx.conf
http { ............... ##在文件中找到http開頭的行,並在http下面隨意找兩行添加下面兩行的內容;
upstream luogui { ##luogui是集群名字,可以自由定義,upstream 上游的意思;翻譯過來就是在上游建立一個名字為luogui的集群,集群中包含下述IP地址;
server 192.168.2.100:80;
server 192.168.2.200:80;
}
server {
listen 80;
server_name www.luogui.com; ##域名,可以自由定義;
location ^/.php$ { ##匹配網頁地址的意思,匹配以 / 開頭.php結尾的網頁文件;
proxy_pass http://luogui; ##通過proxy代理伺服器將用戶的請求轉發給luogui集群伺服器;(註:優先順序最高,系統會優先處理這條命令)
}
}
第四步、測試效果;
firefox http://192.168.4.5 或者 本地測試 curl http://192.168.4.5
結果應該是暫停任何一檯子伺服器,客戶機訪問網頁都沒有問題;
以上.......
(EDN)
祝:開心!
羅貴
2019-04-05於深圳
2. linux 搭建 Nginx (圖片伺服器)
打開nginx官網 http://nginx.org/en/download.html
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
cd /usr/local/
tar -zxvf nginx-1.20.1.tar.gz
./configure --with-http_ssl_mole
編譯參數有很多,這邊我只增加了SSL模塊,小夥伴可以根據自身情況調整
--prefix=PATH:指定 nginx 的安裝目錄
--conf-path=PATH:指定 nginx.conf 配置文件路徑
--user=NAME:nginx 工作進程的用戶
--with-pcre:開啟 PCRE 正則表達式的支持
--with-http_ssl_mole:啟動 SSL 的支持
--with-http_stub_status_mole:用於監控 Nginx 的狀態
--with-http-realip_mole:允許改變客戶端請求頭中客戶端 IP 地址
--with-file-aio:啟用 File AIO
--add-mole=PATH:添加第三方外部模塊
make
執行完上述命令後,在解壓目錄下,多出一個Makefile文件
make install
因編譯時未指定安裝目錄,執行make install 命令後看到反饋日誌信息,實際安裝目錄為/usr/local/nginx
進入實際安裝目錄,看看,並在其sbin目錄下執行啟動nginx
cd /usr/local/nginx/
瀏覽器訪問 http://ip:80 , 顯示如下圖則代表部署成功
進入 /usr/local/nginx/conf/ 文件夾,找到nginx.conf 文件
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8088;
server_name localhost;
location ~ .*.(gif|jpg|jpeg|png|apk|pdf)$ {
expires 24h;
root /usr/local/img/;#指定圖片存放路徑
access_log /usr/local/nginx/logs/images.log;#日誌路徑
proxy_store on;
proxy_store_access user:rw group:rw all:rw;
proxy_temp_path /usr/local/img/;#代理臨時路徑
proxy_redirect off;
}
修改配置文件,內容如上
cd /usr/local/nginx/sbin
./nginx -s reload
瀏覽器輸入 http://ip:8088/1.png ,查看是否能正常顯示圖片
3. 如何架設Nginx+Php Web伺服器
由於每個過程較繁瑣,所以這里說說具體步驟,每個步驟的具體內容可以網路搜索。
安裝步驟
一、 編譯安裝PHP5.2.9所需的支持庫
二、編譯安裝MySQL 5.1.34擴展庫
三、編譯安裝PHP(FastCGI模式)
四、修改php-fpm配置文件
五、創建www用戶組及www用戶
六、編譯安裝Nginx
七、創建fcgi.conf文件
八、編輯Nginx配置文件
九、配置開機自動啟動Nginx + PHP
十、優化Linux內核參數
4. 如何在遠程Linux伺服器上搭建Nginx
1.將nginx的壓縮包nginx-1.8.0.tar.gz上傳到Linux伺服器
2.由於nginx是C語言開發的並且我們這里是通過編譯nginx的源碼來安裝nginx,所以Linux上要安裝C語言的編譯環境gcc,
如果已經安裝此步可以省略,否則執行命令:
3.nginx的http模塊使用pcre來解析正則表達式,所以需要在linux上安裝pcre庫。
yum install -y pcre pcre-devel
4.zlib庫提供了很多種壓縮和解壓縮的方式,nginx使用zlib對http包的內容進行gzip,所以需要在linux上安裝zlib庫。
yum install -y zlib zlib-devel
5.nginx不僅支持http協議,還支持https(即在ssl協議上傳輸http),所以需要在linux安裝openssl庫。
yum install -y openssl openssl-devel
6.在Linux上創建nginx的臨時目錄,注意我這里是在Linux文件系統下的
/var下創建文件夾temp在temp下創建nginx。即:/var/temp/nginx
7.執行命令:
./configure --prefix=/usr/local/nginx --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --with-http_gzip_static_mole --http-client-body-temp-path=/var/temp/nginx/client --http-proxy-temp-path=/var/temp/nginx/proxy --http-fastcgi-temp-path=/var/temp/nginx/fastcgi --http-uwsgi-temp-path=/var/temp/nginx/uwsgi --http-scgi-temp-path=/var/temp/nginx/scgi
8.編譯源碼,安裝nginx:
makemake install
9.啟動nginx:
cd /usr/local/nginx/sbin/./nginx -c /usr/local/nginx/conf/nginx.conf
在瀏覽器中訪問: http://localhost 出現下面界面表示安裝成功:
我們此時也可以查看到nginx進程的運行情況:
ps aux|grep nginx
10.nginx伺服器的停止方式:
方式一:先查出nginx進程id再使用kill命令強制殺掉進程。
cd /usr/local/nginx/sbin./nginx -s stop方式二(推薦):待nginx進程處理任務完畢進行停止。
cd /usr/local/nginx/sbin./nginx -s quit
以上就是本文的全部內容,希望對大家的學習有所幫助