摘要:前言是一個高性能的和反向代理服務器,也是一個服務器安裝安裝源碼安裝安裝以為例設置源設置代理公網情況下可忽略代理命令安裝源碼安裝下載源碼模塊擴展安裝在安裝的時候往往會有配置需求同時如果我們想要安裝一個第三方的模塊則需要進行設
前言
Nginx (engine x) 是一個高性能的HTTP和反向代理服務器,也是一個IMAP/POP3/SMTP服務器安裝
yum安裝
源碼安裝
yum安裝
以CentOS6.5 為例
設置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
設置代理 vi /etc/yum.conf (公網情況下可忽略)
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模塊擴展安裝
在安裝nginx的時候, 往往會有配置需求, 同時如果我們想要安裝一個第三方的模塊, 則需要 --add-module 進行設置. 例如下面要求
已知第三方模塊
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源碼重新編譯
有時候, 我們需要給現有的nginx加入一些擴展模塊. 那么就需要通過對應的版本的源代碼, 重新configure, 具體步驟如下:
# 老的nginx 執行 nginx -V /usr/local/nginx/sbin/nginx -V # nginx 同一版本下的源碼 執行 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目錄下產生新的 nginx 覆蓋老的nginx cp objs/nginx /usr/local/nginx/sbin/nginx # 如果出現文件打開錯誤,運行下面這句 mkdir -p /dev/shm/nginx_temp/client_body # 測試 sudo /usr/local/nginx/sbin/nginx -t # 平滑重啟nginx sudo /usr/local/nginx/sbin/nginx -s reloadnginx配置 基本配置
user www www; # 用戶名 用戶組 http { # http服務設置 # 引入多個mime類型 include mime.types; # 啟用gzip壓縮 gzip on; # 錯誤頁面重定向 error_page 400 401 402 403 404 405 408 410 412 413 414 415 500 501 502 503 506 = /error.html; # 引入額外配置 include vhosts/*.conf; }虛擬主機配置
用戶請求 host為 liylblog.com 主機時, 將訪問 root 目錄下的資源
server { listen 80; server_name liylblog.com; root /home/www/liyblog/html; }路由匹配設置
server { listen 80; server_name liylblog.com; root /home/www/liyblog/html; # 最長優先匹配, 所以 / 為最后匹配規則 location / { # 設置默認的index文件名稱 index index.html index.html; try_files $uri $uri/; } # 以.php結尾或者 .php/xxx 結尾的路徑, ~ 表示大小寫敏感 location ~ .php($|/) { # 規則 } # 大小寫敏感, 以 /img/ 開頭的資源路徑將被匹配 # /img/logo.png # /img/avatar.png location ^~ /img/ { # 規則 } # 大小寫敏感, 匹配 /api 資源 location ^~ = /api { f( !-e $request_filename ) { rewrite ^/api /api/ last; } } }
nginx 配置負載均衡
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; # 重定向請求 proxy_pass http://proxy_stream; } } # 多臺機器代理, 背后可能是其它web服務器 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后綴結尾或者 .php/ 結尾的路徑 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; } }小結
nginx 是一個優秀的代理服務器, 還有很多未知的知識亟待去挖掘
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/39891.html
摘要:前言是一個高性能的和反向代理服務器,也是一個服務器安裝安裝源碼安裝安裝以為例設置源設置代理公網情況下可忽略代理命令安裝源碼安裝下載源碼模塊擴展安裝在安裝的時候往往會有配置需求同時如果我們想要安裝一個第三方的模塊則需要進行設 前言 Nginx (engine x) 是一個高性能的HTTP和反向代理服務器,也是一個IMAP/POP3/SMTP服務器 安裝 yum安裝 源碼安裝 yum安...
摘要:應該如何解決本文將給出若干提示,如何在生產環境中使用。路由匹配服務發現負載均衡跨容器通訊非??煽俊T趩蝹€端口上運行一個服務,節點的任意主機都可以訪問,負載均衡完全在后臺實現。 上周數人云給大家分享了——《你可能需要的關于Docker Swarm的經驗分享》今天給大家帶來這位作者大大的后續文章——《Docker Swarm在生產環境中的進階指南》 當在本地開發環境中使用Docker,或者...
閱讀 2449·2021-10-08 10:17
閱讀 1824·2021-09-06 15:02
閱讀 2539·2019-08-29 17:30
閱讀 2663·2019-08-29 13:24
閱讀 1522·2019-08-29 11:12
閱讀 3337·2019-08-28 17:52
閱讀 666·2019-08-26 11:30
閱讀 3577·2019-08-26 11:01