Nginx基本內容
[TOC]
下載
apt-get install nginx
目錄詳情
nginx一共需要3個目錄文件
web目錄: /root/ var/www/html
配置目錄 /etc/nginx
啟動目錄 /usr/sbin/nginx

其中在配置文件中包含了兩種配置,一種是nginx的配置。也就是/etc/nginx/nginx.conf
另外一個文件可以理解為是針對個人用戶對自己所需要建立的web項目的個性化配置
可以寫在/etc/nginx/conf.d/下或者/etc/nginx/sites-available/default下
在nginx.conf中使用include來指向其他的配置文件,可以有多個配置

當然可以填入多個配置來供選擇,執(zhí)行順序從上到下執(zhí)行
內容配置
下面解釋一下nginx中的配置文件
#運行用戶
user www-data;
#啟動進程,通常設置成和cpu的數(shù)量相等。也可以是n+1 或者設置成auto
worker_processes auto;
#全局錯誤日志及進程PID文件
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
#工作模式及連接數(shù)上限
events {
#use epoll;
#epoll是多路復用IO(I/O Multiplexing)中的一種方式,但是僅用于linux2.6以上內核,可以大大提高nginx的性能
worker_connections 768; #單個后臺worker process進程的最大并發(fā)連接數(shù)
# multi_accept on;
}
#設定http服務器,利用他的反向代理功能提供負載均衡
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;
#設定mime類型,類型由mime.type文件定義
include /etc/nginx/mime.types;
default_type application/octet-stream;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
#設定日志格式
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
#開啟gzip壓縮
gzip on;
gzip_disable "msie6";
#設定conf配置文件
include /etc/nginx/conf.d/*.conf;
}
server {
#偵聽80端口
listen 80;
#定義使用www.xx.com訪問
server_name www.xx.com;
#設定本虛擬主機的訪問日志
access_log logs/www.xx.com.access.log main;
#默認請求
location / {
root /root; #定義服務器的默認網站根目錄位置
index index.php index.html index.htm; #定義首頁索引文件的名稱
fastcgi_pass www.xx.com;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
# 定義錯誤提示頁面
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /root;
}
負載均衡配置
#設定http服務器,利用它的反向代理功能提供負載均衡支持
http {
#設定mime類型,類型由mime.type文件定義
include /etc/nginx/mime.types;
default_type application/octet-stream;
#設定日志格式
access_log /var/log/nginx/access.log;
#省略上文有的一些配置節(jié)點
#設定負載均衡的服務器列表
upstream mysvr {
#weigth參數(shù)表示權值,權值越高被分配到的幾率越大
server 192.168.8.1x:3128 weight=5;#本機上的Squid開啟3128端口
server 192.168.8.2x:80 weight=1;
server 192.168.8.3x:80 weight=6;
}
upstream mysvr2 {
#weigth參數(shù)表示權值,權值越高被分配到的幾率越大
server 192.168.8.x:80 weight=1;
server 192.168.8.x:80 weight=6;
}
#第一個虛擬服務器
server {
#偵聽192.168.8.x的80端口
listen 80;
server_name 192.168.8.x;
#對aspx后綴的進行負載均衡請求
location ~ .*\.aspx$ {
root /root; #定義服務器的默認網站根目錄位置
index index.php index.html index.htm; #定義首頁索引文件的名稱
proxy_pass http://mysvr ;#請求轉向mysvr 定義的服務器列表
#以下是一些反向代理的配置可刪除.
proxy_redirect off;
#后端的Web服務器可以通過X-Forwarded-For獲取用戶真實IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m; #允許客戶端請求的最大單文件字節(jié)數(shù)
client_body_buffer_size 128k; #緩沖區(qū)代理緩沖用戶端請求的最大字節(jié)數(shù),
proxy_connect_timeout 90; #nginx跟后端服務器連接超時時間(代理連接超時)
proxy_send_timeout 90; #后端服務器數(shù)據回傳時間(代理發(fā)送超時)
proxy_read_timeout 90; #連接成功后,后端服務器響應時間(代理接收超時)
proxy_buffer_size 4k; #設置代理服務器(nginx)保存用戶頭信息的緩沖區(qū)大小
proxy_buffers 4 32k; #proxy_buffers緩沖區(qū),網頁平均在32k以下的話,這樣設置
proxy_busy_buffers_size 64k; #高負荷下緩沖大小(proxy_buffers*2)
proxy_temp_file_write_size 64k; #設定緩存文件夾大小,大于這個值,將從upstream服務器傳
}
}
}
錯誤解決
端口占用(1)

錯誤原因:端口重復占用,先訪問80端口看看是什么,如果已經啟動了你要啟動的項目則成功,如果不是
開始解決
lsof -i :80 #查看80端口的情況
netstat -ltunp #查看進程

殺死進程
kill pid
擴展
1.nginx從容停止
ps -ef |grep nginx #查看端口號
2.殺死進程
kill -QUTT 2072
1.快速停止
kill -TREM 2132 或者 kill -ITN 2132
1.強制停止
pkill -9 nginx
1.檢查配置是否正確
/etc/sbin/nginx -t
使用Nginx配置一個靜態(tài)頁面
1)編寫一個簡單的網頁作為測試工具
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Page Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" media="screen" href="main.css" />
<script src="main.js"></script>
</head>
<body>
<h1 style="font-size: 50px">Hello,nginxTes2222222t</h1>
</body>
</html>
2)創(chuàng)建一個文件夾用于存放你的文件
這里為了方便,我將文件夾添加在了/etc/nginx中,也就是nginx的安裝目錄中

這個peoject就是我的項目,在里面創(chuàng)建一個www.html的靜態(tài)網頁

3)接下來配置我們的nginx.conf文件

將include中的地址改成conf.d文件夾下所有的以,conf結尾的文件
當然如果你不喜歡conf.d這個文件,你也可以自己創(chuàng)建一個文件夾用于存放.conf文件,再由Include指向這個文件夾就可以了
如果你配置了多個文件夾,比如

那他所執(zhí)行的順序就是先去查找conf.d中的文件,如果找不到,則去conf2.d中尋找
4)配置conf.d的文件
這里我創(chuàng)建了一個default.conf的文件用來配置
因為對于每一個網站或者網頁,都會有一個配置,因此我們可以把他認定成為一個server

listen是監(jiān)聽端口
server_name是訪問ip或者域名
root 是文件第一次訪問的根目錄
5)保存退出,啟動nginx
另外需要注意的是當nginx中的配置發(fā)生變化的時候,我們可以重啟Nginx,
但是如果是項目的內容發(fā)生變化,就盡量不要去重啟nginx了
方便操作
1)如果你嫌麻煩覺得自己的一個server沒有必要放到一個文件中再由nginx去匹配文件中的內容,那么你可以直接將你的server放置再nginx.conf下的http{}中
-
如果你想檢驗自己的操作是否正確,配置是否正確,則可以用nginx -t來檢驗
1533755331600.png
