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