本文介紹一下在 openSUSE
下如何安裝 nginx
,以及對 nginx
作一些簡單的配置。html
安裝環境:
openSUSE Leap 42.2linux
安裝 nginx
有幾種方式,包括源碼編譯安裝,或者直接經過添加軟件源,進行在線安裝等方式。後者要簡單方便一些,由於它能自動解決依賴關係,而且方便咱們升級維護。nginx
打開 nginx
的官網下載地址 地址在此 ,能夠看到 nginx
爲不一樣的 linux
發行版都添加了軟件源信息,咱們使用的是 openSUSE
系統,所以可使用 SLES
相關的軟件源:web
進入到 linux
系統中,執行上述命令,添加軟件源。瀏覽器
YaST2
工具進行安裝打開 系統-->添加/移除軟件:服務器
而後搜索 nginx
:app
能夠看到,第一個就是從剛纔添加的軟件源中讀取到的軟件信息,勾選,點擊右下角的接受,進行安裝。
安裝完畢後 YaST2
會自動退出。tcp
nginx
經常使用命令nginx
啓動 nginx
直接執行nginx
命令便可:工具
nginx
1.1 加載指定的配置文件ui
nginx
啓動時會默認加載 /etc/nginx/nginx.cnf
下的配置文件進行啓動,若是你想加載其餘的配置文件,可使用 -c
指令:
nginx -c /etc/nginx/nginx.conf
1.2 找出默認的配置位置
若是你不知道默認的配置文件在什麼地方,可使用 -t
指令, -t
指令用於分析檢測配置文件的語法,而且會打印配置文件的位置:
nginx
的運行狀態ps -ef|grep nginx
信息以下:
linux-2wl8:~ # ps -ef|grep nginx root 10132 1 0 16:58 ? 00:00:00 nginx: master process nginx root 10133 10132 0 16:58 ? 00:00:00 nginx: worker process root 10134 10132 0 16:58 ? 00:00:00 nginx: worker process root 10136 10132 0 16:58 ? 00:00:00 nginx: worker process root 10137 10132 0 16:58 ? 00:00:00 nginx: worker process root 10140 8912 0 16:59 pts/0 00:00:00 grep --color=auto nginx
能夠看到,nginx
已經成功啓動,包含一個主進程(master process)
和幾個工做進程(work process)
。
若是沒顯示上述進程信息,表示 nginx
未成功啓動。
nginx
nginx
中止有兩種方式:快速中止和平滑中止
nginx -s stop
:快速中止
nginx -s quit
:平滑中止
平滑中止會等待全部的工做進程處理完全部的請求後,再進行中止,不是強制中止。
nginx
支持配置文件的熱修改,無需重啓服務也可從新加載配置文件,使用命令:
nginx -s reload
主進程接收到上述指令後,首先會檢查配置文件的語法是否正確,確認無誤後,會開啓新的工做進程,而後向舊的工做進程發送關閉的指令,舊的工做進程收到指令後,並不是當即中止,而是處理完當前的請求後再自行中止。經過這個步驟,來完成對配置文件的從新載入。
nginx
的版本:經過 -v
來查看版本信息:
nginx -v
nginx
配置文件經過 YaST
安裝後,配置文件的默認位置爲 /etc/nginx/nginx.conf
.
下面是一些常見的配置信息。
# 定義用戶組和用戶 user root root; # 進程數,建議爲CPU核心數 worker_processes 4; # error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; # 工做模式與鏈接數上限 events { worker_connections 1024; } #設定http服務器 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; }
openSUSE
中 默認的根目錄在 usr/share/nginx
下,假如咱們想放在/home/web
目錄下。
打開配置文件 nginx.conf
,在http
節點下 有這麼一句話 include /etc/nginx/conf.d/*.conf;
打開 conf.d/
目錄,發現有一個 default.conf
文件,在該文件中配置了server
節點。
server
節點中root
表示根目錄存放的位置,listen
表示要監聽的端口,server_name
表示主機名。
此時把root
節點內容修改成 /home/web
便可,並在 /home/web
目錄下放置一個 index.html
.
而後執行 nginx -s reload
從新加載配置文件。在瀏覽器中訪問 localhost
試一下:
由於nginx.conf
中 已包含了conf.d/
目錄下的全部配置文件( include /etc/nginx/conf.d/*.conf;
),所以咱們能夠拷貝一份default.conf
,隨便命名爲site1.conf
,修改裏面的端口和根目錄便可。別忘了 從新加載配置文件和在根目錄下放置一個idnex.html
文件,否則可能會發生403
拒絕訪問,出現403
還有一個緣由,就是權限問題,修改一下根目錄的權限,把他賦給nginx
便可。
好比配置一個88
的端口: