一、配置文件介紹
nginx的配置文件主要由指令和塊組成,以「;」分號作為結束符號,以「{}」大括號作為塊的開始和結束標誌。
nginx的默認配置文件在安裝目錄下的conf文件夾中,文件名為nginx.conf。默認配置文件中分別給出了http、server、location等不同範圍的指令。如果需要定製自己的配置,則需要在該文件中進行修改或者新建一個新的配置文件並在啟動時進行指定。
在安裝目錄下的sbin文件夾中,有一個nginx可執行文件,通過命令行啟動nginx時,可以在命令行中使用-c選項指定配置文件,如:nginx -c /home/user/nginx.conf。
二、http模塊相關指令
1、listen指令
server {
listen 80;
}
listen用於指定server需要監聽的端口,默認80端口。多個端口可以用空格分開。
2、server_name指令
server {
server_name example.com;
}
server_name用於指定server對應的域名。可以指定多個域名,中間用空格隔開。
3、access_log和error_log指令
server {
access_log /path/to/access.log;
error_log /path/to/error.log;
}
access_log和error_log分別用於指定訪問日誌和錯誤日誌存放的路徑。可以指定多個日誌文件,中間用空格隔開。
三、server模塊相關指令
1、location指令
server {
location / {
root /var/www/html;
}
}
location用於指定url對應的路徑。/表示匹配所有請求,/xxx表示匹配以xxx開頭的請求,=xxx表示精確匹配xxx請求。需要在{}中指定該url對應的操作,如root、proxy等。
2、rewrite指令
server {
rewrite ^/(.*)\.html$ /$1.php last;
}
rewrite用於url的重寫。上面的例子表示將.html結尾的url重定向到同名的.php文件。
3、proxy_pass指令
server {
location /api/ {
proxy_pass http://127.0.0.1:8000/;
}
}
proxy_pass用於轉發請求到其他服務。上面的例子表示將/api/開頭的請求轉發到本機的8000端口。
四、upstream模塊相關指令
1、upstream指令
http {
upstream backend {
server 127.0.0.1:8000;
server 10.0.0.1:8000;
}
server {
location /api/ {
proxy_pass http://backend/;
}
}
}
upstream用於指定後端服務的地址和一些負載均衡策略。以上面的例子為例,表示將/api/開頭的請求轉發到backend里的某一個服務器上。
2、ip_hash指令
http {
upstream backend {
ip_hash;
server 127.0.0.1:8000;
server 10.0.0.1:8000;
}
server {
location /api/ {
proxy_pass http://backend/;
}
}
}
ip_hash是upstream的一個策略指令,表示將同一個客戶端的請求轉發給同一個後端服務。這個指令需要放在server的上面。
五、結束語
nginx的配置文件功能強大,可以用於指定端口、域名、url轉發、負載均衡等等。通過學習nginx的配置文件,可以更靈活地配置自己的服務器,並且可以更好地控制網絡流量、負載均衡等方面的問題。
原創文章,作者:ICVFQ,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/372087.html