nginx學習筆記 +負載

一、首先就是nginx的安裝

這裏使用編譯安裝

在官網http://nginx.org找到需要的版本,因其依賴pcre庫,先安裝pcre庫
命令

#yum install pcre pcre-devel
#cd /user/local/src
#weget http://nginx.org/download/nginx-1.16.1.tar.gz
#tar zxvf nginx-1.16.1.tar.gz
#cd nginx-1.16.1
#make && make install

下載完成,這裏記錄一下相關知識
tar 的一些參數
必選且只能選一個的參數
-c: --create 新建一個壓縮文檔,即打包
-x: --extract,–get解壓文件
-t: --list,查看壓縮文檔裏的所有內容
-r:–append 向壓縮文檔裏追加文件,遞歸下載
-u:–update 更新原壓縮包中的文件

輔助選項:
-z:是否同時具有gzip的屬性?即是否需要用gzip壓縮或解壓?一般格式爲xxx.tar.gz或xx.tgz
-j:是否同時具有bzip2的屬性?即是否需要用bzip2壓縮或解壓?一般格式爲xx.tar.bz2
-v:顯示操作過程!這個參數很常用
-f:使用文檔名,注意,在f之後要立即接文檔名,不要再加其他參數!
-C:切換到指定目錄

二、目錄介紹

進入安裝的nginx下
可見
conf 配置文件
html 網頁文件
logs 日誌文件
sbin 二進制程序
啓動:進入安裝目錄後 ./sbin/nginx
啓動時常見問題:80端口占用問題
分爲兩種情況
(1)確實有軟件佔用,關掉即可;若是自帶apache且自啓動 server httpd stop;
若是自行編譯安裝:path/to/apach/bin/apachtl stop
(2)無服務佔用
在這裏插入圖片描述

三、一些命令參數

nginx目錄 -t 測試配置
nginx目錄 -s reload 加載最新配置
nginx目錄 -s stop 立即停止
nginx目錄 -s quit 優雅停止(即運行結束停止)
nginx目錄 -s reopen 重新打開日誌
使用日誌文件的切割:複製日誌文件到另一個文件中,再新建一個
eg:
mv aa.log bb.log
touch aa.log
但此時不會寫入新的aa.log中,我們可以直接重啓,更好的方法-s reopen 重連

四、nginx的一些配置

nginx配置文件nginx.conf 1、全局配置

在這裏插入圖片描述

2.sever段配置虛擬主機

server {
	listen       80;               #監聽端口
	server_name  aa.com;      #域名
	access_log   路徑(該虛擬主機下日誌存放路徑)   內容格式(可自定義,見五、日誌管理)
	#eg: access_log   logs/aa.log   simple;
	location \ {
		root: 絕對相對都可以                          #根目錄
		index:index.php index.html                 #入口文件
	}
	//解析php的配置
	location ~ \.php$ {
		root                        #和上面一致
		fastcgi_pass         127.0.0.1:9000;
		fastcgi_index        index.php;
		fastcgi_param        SCRIPT_FILENAME   $DOCUMENT_ROOT$fastcgi_script_name;
		include              fastcgi_params;
	}
}

五、日誌管理

在這裏插入圖片描述

如果使用了代理服務器,則 $request_addr 就無法獲取真正的用戶ip,此時代理服務器會返回參數$http_x_forwarded_for

六、url重寫

同樣在sever中配置(修改兩處)

server {
	listen       80;               #監聽端口
	server_name  aa.com;      #域名
	access_log   路徑(該虛擬主機下日誌存放路徑)   內容格式(可自定義,見五、日誌管理)
	#eg: access_log   logs/aa.log   simple;
	location \ {
		root: 絕對相對都可以                          #根目錄
		index:index.php index.html                 #入口文件
		if (!-e $request_filename) {               #url重寫1
			rewrite (.*)$ /index.php/$1;
		}
	}
	//解析php的配置
	location ~ \.php$ {
		root                        #和上面一致
		fastcgi_pass         127.0.0.1:9000;
		fastcgi_index        index.php;
		fastcgi_param        SCRIPT_FILENAME   $DOCUMENT_ROOT$fastcgi_script_name;
		fastcgi_param        PATH_INFO $1;              #url重寫2
		include              fastcgi_params;
	}
}

七、try_files

上面url重寫過於繁瑣,官方提供了簡單的方法
server {
	listen       80;               #監聽端口
	server_name  aa.com;      #域名
	access_log   路徑(該虛擬主機下日誌存放路徑)   內容格式(可自定義,見五、日誌管理)
	#eg: access_log   logs/aa.log   simple;
	location \ {
		root: 絕對相對都可以                          #根目錄
		index:index.php index.html                 #入口文件
		try_files $uri /index.php?$uri;            #try_files配置
	}
	//解析php的配置
	location ~ \.php$ {
		root                        #和上面一致
		fastcgi_pass         127.0.0.1:9000;
		fastcgi_index        index.php;
		fastcgi_param        SCRIPT_FILENAME   $DOCUMENT_ROOT$fastcgi_script_name;
		include              fastcgi_params;
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章