nginx常識(轉自本人的csdn)

nginx經常使用命令
nginx -c /usr/local/nginx/conf/nginx.conf 啓動nginx(windows下start nginx);
nginx -s quit 中止ngix
nginx -s reload 從新載入nginx(當配置信息發生修改時)
nginx -s reopen 打開日誌文件
nginx -v    查看版本
nginx -t    查看nginx的配置文件的目錄
nginx -h 查看幫助信息html

linux下搭建nginx環境
pwd 查看當前目錄
cd /home/download 找到nginx安裝包
tar -zxvf nginx-1.10.3.tar.gz 解壓nginx安裝包
cd nginx-1.10.3 進入nginx的目錄
./configure    運行nginx配置文件(若是出現錯誤,可能缺乏庫文件,安裝後再執行這一步)
su 進入root權限,回車後輸入密碼
cd /    進入到根目錄
yum -y install gcc gcc-c++ autoconf automake 安裝gcc和gcc-c++(-y安裝時選擇贊成選項,autoconf automake 自動配置自動安裝,出現complete安裝成功)
yum -y install pcre pcre-devel 安裝pcre庫
yum -y install zlib zlib-devel 安裝zlip庫
./configure 進入到nginx目錄再運行一次,直到成功後
make 編譯
make install 安裝nginx
cd /usr/local->ls    查看是否有nginx,若是有則安裝完成
cd nginx    conf目錄放着配置文件 htmL放着網頁程序 logs放着日誌文件 sbin放着nginx的啓動程序
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 啓動nginx
瀏覽器打開localhost查看前端

windows下安裝
下載解壓安裝包後直接雙擊運行nginx.exe配置文件(或者start nginx命令)
瀏覽器打開localhost查看linux

linux將nginx配置到全局
cd ~    進入用戶根目錄
ls -a    查看全部文件(包含隱藏)
vim .bashrc 進入環境變量配置文件
export NGINX=/usr/local/nginx/sbin/nginx
PATH=PATH: PATH:PATH:NGINX    修改環境變量
:qw 保存退出 (:q! 不保存退出ctrl d向下翻頁ctrl u向上翻頁)
source .bashrc 修改後的配置文件生效nginx

nginx配置文件修改
nginx -t 查看nginx配置文件目錄
cp nginx.conf nginx_bf.conf 將配置文件備份一下
vim /user/local/nginx/conf/nginx.conf 打開nginx配置文件c++

vim命令
	:q! 不保存退出
	:qw 保存退出
	ctrl d向下翻頁
	ctrl u向上翻頁
nginx -s reload  	當配置信息發生修改時,從新載入nginx,才能生效

nginx配置文件說明
worker_processes 1; //開啓進程數小於CPU數
error_log logs/error.log; //自定義錯誤日誌保存位置,全局設置,默認logs/error.log
events {
worker_connections 1024;    //每一個進程最大鏈接數(最大鏈接=鏈接數x進程數)每一個worker容許同時產生多少個連接,默認1024
}正則表達式

http {
      include       mime.types;		//文件擴展名與文件類型映射表
      default_type  application/octet-stream;	 //默認文件類型
      log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '	//自定義日誌文件輸出格式 全局設置
                '$status $body_bytes_sent "$http_referer" '
                '"$http_user_agent" "$http_x_forwarded_for"';
      access_log  logs/access.log  main;	自定義全局請求日誌保存位置,全局設置,默認logs/access.log, 定義格式:文件存儲位置 + 日誌輸出格式
      sendfile        on; 	//打開發送文件
      keepalive_timeout  0; 	//鏈接超時時間
      keepalive_timeout  65;
      gzip  on;		//打開gzip壓縮
      配置虛擬主機,基於域名、ip和端口,能夠配置多個server
      server {
          listen       80;	//監聽端口,能夠是ip:port 或者 port
          server_name  10.128.166.57; //監聽域名,能夠是ip或者域名,server_name有三種匹配方式:精準匹配(www.domain.com)、通配符匹配(*.domain.com 、www.*)、正則表達式匹配(~^(?.+)\.domain\.com$)
          access_log  logs/host.access.log  main; 	//自定義請求日誌,局部,當前server有效
          error_page   500 502 503 504  /50x.html;  //錯誤頁面及其返回地址
          charset UTF-8;	//設置字符集
          location / { 	//當訪問10.128.166.57:80時
             proxy_pass http://10.128.166.57:80:8083; //實際上訪問的時http://10.128.166.57:80:8083地址
          }
          location ^~/data { 	//當訪問10.128.166.57:80/data時
             proxy_pass http://10.128.166.57:80:8084; //實際上訪問的時http://10.128.166.57:80:8084地址
          }
          
      }
      
  }

nginx日誌分割備份
mkdir /usr/local/nginx/back_up_logs //建立存放備份文件目錄
vim /usr/local/nginx/sbin/log.sh //建立腳本log.sh
chmod 755 log.sh //腳本受權
crontab -e //執行該命令設置定時任務
*/1 * * * * sh /usr/local/nginx/sbin/log.sh //每分鐘執行一次,保存退出便可自動開始執行定時任務
crontab -l //查看全部定時任務
crontab -r //刪除全部定時任務
log.sh文件的內容:
#!/bin/sh
#設置基路徑
BASE_DIR=/usr/local/nginx
#要切割備份的日誌文件名
BASE_FILE_NAME=access.log
#日誌路徑
LOG_PATH=KaTeX parse error: Expected 'EOF', got '#' at position 20: …_DIR/logs #̲日誌切割後備份路徑 …BASE_DIR/back_up_logs
#切割日誌文件
LOG_FILE=LOGPATH/ LOG_PATH/LOG 
P
​    
 ATH/BASE_FILE_NAME
#獲取時間
BAK_TIME=/bin/date -d yesterday +%Y%m%d%H%M //以分鐘爲單位
#備份文件
BAK_FILE=BAKPATH/ BAK_PATH/BAK 
P
​    
 ATH/BAK_TIME-$BASE_FILE_NAME
echo $BAK_FILE
#關閉nginx
$BASE_DIR/sbin/nginx -s stop
#移動切割文件
mv $LOG_FILE $BAK_FILE
#啓動nginx
$BASE_DIR/sbin/nginvim

解決端跨域問題(保證ip和端口相同)修改配置文件\nginx-1.10.3\conf\nginx.conf文件
server {
listen 8081;//前端調試打開localhost:8081頁面;js文件中後臺接口訪問localhost:8081/data;這樣就保證不跨域了
server_name localhost;
access_log logs/host.access.log main;
location / {    //訪問localhost:8081實際上訪問是前端端口http://localhost:8080/
proxy_pass http://localhost:8080/;
}
location ^~ /data {//訪問localhost:8081/data實際上訪問是後端接口http://10.128.166.42:8533/
proxy_pass http://10.128.166.42:8533/;
}windows

相關文章
相關標籤/搜索