摘要:前言是一個(gè)高性能的和反向代理服務(wù)器,也是一個(gè)服務(wù)器安裝安裝源碼安裝安裝以為例設(shè)置源設(shè)置代理公網(wǎng)情況下可忽略代理命令安裝源碼安裝下載源碼模塊擴(kuò)展安裝在安裝的時(shí)候往往會(huì)有配置需求同時(shí)如果我們想要安裝一個(gè)第三方的模塊則需要進(jìn)行設(shè)
前言
Nginx (engine x) 是一個(gè)高性能的HTTP和反向代理服務(wù)器,也是一個(gè)IMAP/POP3/SMTP服務(wù)器安裝
yum安裝
源碼安裝
yum安裝
以CentOS6.5 為例
設(shè)置yum源, vi etc/yum.repos.d/nginx.repo
[nginx] name=nginx repo baseurl=http://nginx.org/packages/mainline/centos/6/x86_64/ gpgcheck=0 enabled=1
設(shè)置代理 vi /etc/yum.conf (公網(wǎng)情況下可忽略)
proxy=代理IP
命令安裝
sudo yum install nginx
源碼安裝
下載nginx源碼
wget http://nginx.org/download/nginx-1.13.12.tar.gz tar -xvzf nginx-1.13.12.tar.gz cd nginx-1.13.12 ./configure --prefix=/usr/local/nginx make sudo make install模塊擴(kuò)展安裝
在安裝nginx的時(shí)候, 往往會(huì)有配置需求, 同時(shí)如果我們想要安裝一個(gè)第三方的模塊, 則需要 --add-module 進(jìn)行設(shè)置. 例如下面要求
已知第三方模塊
nginx-http-concat 前端JS,CSS文件合并資源
git clone https://github.com/alibaba/nginx-http-concat.git # nginx 編譯 ./configure --add-module=/path/to/nginx-http-concat make sudo make install源碼重新編譯
有時(shí)候, 我們需要給現(xiàn)有的nginx加入一些擴(kuò)展模塊. 那么就需要通過對(duì)應(yīng)的版本的源代碼, 重新configure, 具體步驟如下:
# 老的nginx 執(zhí)行 nginx -V /usr/local/nginx/sbin/nginx -V # nginx 同一版本下的源碼 執(zhí)行 configure, 附加新的模塊 ./configure --prefix=/usr/local/nginx --add-module=/path/to/nginx-http-concat # 編譯 make # 備份老的nginx cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old # 將objs目錄下產(chǎn)生新的 nginx 覆蓋老的nginx cp objs/nginx /usr/local/nginx/sbin/nginx # 如果出現(xiàn)文件打開錯(cuò)誤,運(yùn)行下面這句 mkdir -p /dev/shm/nginx_temp/client_body # 測(cè)試 sudo /usr/local/nginx/sbin/nginx -t # 平滑重啟nginx sudo /usr/local/nginx/sbin/nginx -s reloadnginx配置 基本配置
user www www; # 用戶名 用戶組 http { # http服務(wù)設(shè)置 # 引入多個(gè)mime類型 include mime.types; # 啟用gzip壓縮 gzip on; # 錯(cuò)誤頁面重定向 error_page 400 401 402 403 404 405 408 410 412 413 414 415 500 501 502 503 506 = /error.html; # 引入額外配置 include vhosts/*.conf; }虛擬主機(jī)配置
用戶請(qǐng)求 host為 liylblog.com 主機(jī)時(shí), 將訪問 root 目錄下的資源
server { listen 80; server_name liylblog.com; root /home/www/liyblog/html; }路由匹配設(shè)置
server { listen 80; server_name liylblog.com; root /home/www/liyblog/html; # 最長優(yōu)先匹配, 所以 / 為最后匹配規(guī)則 location / { # 設(shè)置默認(rèn)的index文件名稱 index index.html index.html; try_files $uri $uri/; } # 以.php結(jié)尾或者 .php/xxx 結(jié)尾的路徑, ~ 表示大小寫敏感 location ~ .php($|/) { # 規(guī)則 } # 大小寫敏感, 以 /img/ 開頭的資源路徑將被匹配 # /img/logo.png # /img/avatar.png location ^~ /img/ { # 規(guī)則 } # 大小寫敏感, 匹配 /api 資源 location ^~ = /api { f( !-e $request_filename ) { rewrite ^/api /api/ last; } } }
nginx 配置負(fù)載均衡
server { listen 80; server_name liylblog.com; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-forwarded-For $proxy_add_x_forwarded_for; # 重定向請(qǐng)求 proxy_pass http://proxy_stream; } } # 多臺(tái)機(jī)器代理, 背后可能是其它web服務(wù)器 upstream proxy_stream { server 192.168.1.1 max_fails=3 fail_timeout=30s; server 192.168.1.2 max_fails=3 fail_timeout=30s; }反向代理 PHP-FPM代理
server { listen 80; server_name liylblog.com; root /home/www/liyblog/html; access_log /usr/local/nginx/logs/liylblog.access.log; error_log /usr/local/nginx/logs/liylblog.error.log; location / { index index.html index.htm index.php; if (!-e $request_filename) { ## if 后面必須有空格 rewrite ^(.*)$ /index.php?s=$1 last; break; } } # 大小寫敏感, 匹配.php后綴結(jié)尾或者 .php/ 結(jié)尾的路徑 location ~ .php($|/) { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_script_name; fastcgi_split_path_info ^(.+?.php)(/.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; client_max_body_size 100M; fastcgi_connect_timeout 300s; fastcgi_send_timeout 300s; fastcgi_read_timeout 300s; include fastcgi_params; } }Node.js 代理
server { listen 80; server_name liylblog.com; root /home/www/liyblog/html; access_log /usr/local/nginx/logs/liylblog.access.log; error_log /usr/local/nginx/logs/liylblog.error.log; location @proxy { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_pass http://localhost:7001; proxy_redirect off; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header X-Forwarded-Proto $scheme; proxy_cache_key sfs$request_uri$scheme; } location / { autoindex on; index index.html index.htm; # 嘗試訪問地址 例如, 訪問 $root/foo, $root/foo/index.html, $root/foo/index.htm, $proxy/foo; try_files $uri $uri/ @proxy; } }小結(jié)
nginx 是一個(gè)優(yōu)秀的代理服務(wù)器, 還有很多未知的知識(shí)亟待去挖掘
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/8054.html
摘要:前言是一個(gè)高性能的和反向代理服務(wù)器,也是一個(gè)服務(wù)器安裝安裝源碼安裝安裝以為例設(shè)置源設(shè)置代理公網(wǎng)情況下可忽略代理命令安裝源碼安裝下載源碼模塊擴(kuò)展安裝在安裝的時(shí)候往往會(huì)有配置需求同時(shí)如果我們想要安裝一個(gè)第三方的模塊則需要進(jìn)行設(shè) 前言 Nginx (engine x) 是一個(gè)高性能的HTTP和反向代理服務(wù)器,也是一個(gè)IMAP/POP3/SMTP服務(wù)器 安裝 yum安裝 源碼安裝 yum安...
摘要:應(yīng)該如何解決本文將給出若干提示,如何在生產(chǎn)環(huán)境中使用。路由匹配服務(wù)發(fā)現(xiàn)負(fù)載均衡跨容器通訊非??煽俊T趩蝹€(gè)端口上運(yùn)行一個(gè)服務(wù),節(jié)點(diǎn)的任意主機(jī)都可以訪問,負(fù)載均衡完全在后臺(tái)實(shí)現(xiàn)。 上周數(shù)人云給大家分享了——《你可能需要的關(guān)于Docker Swarm的經(jīng)驗(yàn)分享》今天給大家?guī)磉@位作者大大的后續(xù)文章——《Docker Swarm在生產(chǎn)環(huán)境中的進(jìn)階指南》 當(dāng)在本地開發(fā)環(huán)境中使用Docker,或者...
閱讀 1541·2023-04-26 02:03
閱讀 4734·2021-11-22 13:53
閱讀 4644·2021-09-09 11:40
閱讀 3807·2021-09-09 09:34
閱讀 2140·2019-08-30 13:18
閱讀 3513·2019-08-30 11:25
閱讀 3308·2019-08-26 14:06
閱讀 2555·2019-08-26 13:52