標籤:

Nginx 配置

Nginx是一個非同步框架的Web伺服器,也可以用作反向代理,負載平衡器 和 HTTP緩存。該軟體由Igor Sysoev 創建,並於2004年首次公開發布。 同名公司成立於2011年,以提供支持。 Nginx是一款免費的開源軟體,根據類BSD許可證的條款發布。維基百科

雖說 Nginx 一般都是由後端來配置的,但是如果你想成為一個全棧或者一個有追求的前端的話,了解一下 Nginx 還是很有必要的。如果沒有伺服器的話,自己可以裝一個 Linux 虛擬機練下手。這裡我用的 CentOS7 64位的系統來做演示。

虛擬機安裝

這篇文章主要是介紹 Nginx 的,關於 Mac 安裝 CentOS 虛擬機的教程可以參考這篇文章 Mac Pro 上用 Vmware Fusion 7.1.1 安裝 CentOS7,其他系統就自行查找了。安裝好之後可以輸入 ping baidu.com 測試一下網路是不是正常的。

SSH 登錄虛擬機

虛擬機安裝好了之後我一般會用 terminal 連接虛擬機,因為想粘貼一些長命令時不是很好操作。使用命令 ssh rootName@ip,如下圖所示

獲取虛擬機的 IP 地址,可以在 VMware 的窗口輸入 ifconfig,如果提示 ifconfig command not found,可以參考這篇文章CentOS 7 下 ifconfig command not found 解決辦法

安裝 Nginx

Nginx 安裝也十分簡單,輸入 yum install -y nginx,如果無法安裝,則先執行這條命令 rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm 安裝 Nginx 源。然後再輸入 yum install -y nginx。安裝好之後可以輸入 whereis nginx 查看 Nginx 的默認目錄。輸入 nginx 啟動服務,然後在瀏覽器輸入虛擬機的 IP 地址進行訪問,如果無法訪問的話,應該就是虛擬機的防火牆沒有開啟80埠,輸入 firewall-cmd --permanent --add-port=80/tcp 開啟防火牆的80埠,再輸入 firewall-cmd --reload。到這裡再訪問一下虛擬機的 IP 地址,就可以看到 Nginx 的歡迎頁面了。參考文章在CentOS 7中,使用yum安裝Nginx。

修改配置文件

輸入 cd /etc/nginx 進入 /etc/nginx 目錄,用 ls 命令可以看到 nginx.conf 這個文件。這個就是 nginx 的配置文件了。用 cat nginx.conf 命令來看下裡面寫了什麼東西。內容大致如下

user nginx;worker_processes 1;error_log /var/log/nginx/error.log warn;pid /var/run/nginx.pid;events { worker_connections 1024;}http { include /etc/nginx/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 /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf;}

主要配置內容還是在之後一句 include /etc/nginx/conf.d/*.conf; 接下來在進入 /etc/nginx/conf.d/ 目錄看下有什麼東西。同樣用 ls 命令可以看到一個 default.conf 文件,內容大致如下

server { listen 80; server_name localhost; #charset koi8-r; #access_log /var/log/nginx/host.access.log main; location / { root /usr/share/nginx/html; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ .php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ .php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apaches document root # concurs with nginxs one # #location ~ /.ht { # deny all; #}}

可以看到這個服務在監聽 80 埠,root 指向項目根目錄,即我們訪問 localhost (默認為80埠)時,將會查找 /usr/share/nginx/html 這個目錄下的文件。我自己的配置一般如下

server { listen 80; server_name domain; #使用域名或 IP 地址 charset utf8; #字元編碼 access_log /path/folder/access.log main; #訪問日誌 error_log /path/folder/error.log error; #錯誤日誌 root /path/folder; index index.html;}

日誌文件需要我們到對應目錄下創建對應的 log 文件,修改完配置文件可以使用 nginx -s reload 重啟服務。

如果文章對你有所幫助,那麼請您點一下?

由於本人水平有限,如有錯誤,歡迎大家指正。如果你在操作過程中發現一些沒有講到的錯誤或者問題,歡迎在評論留言,一起探討,共同學習進步!

推薦閱讀:

假如有一張100W左右數據的表,根據查詢條件進行分頁。如何分頁?
為什麼感覺現在搜索到的東西,越來越糟呢?
Ubuntu上使用letsencrypt獲得免費的HTTPS證書
【LNMP】配置二級域名
nginx 子域名多埠配置

TAG:Nginx | Linux |