Nginx 安裝及配置

概念

安裝

apt-get install nginx # Ubuntu
yum install nginx -y # CentOS

配置文件

nginx -t # 檢查配置文件正確性 test configuration and exit

主要文件位置

  • which nginx # or whereis nginx:查看主程序文件
  • /etc/init.d/:下建立了啓動腳本nginx(需手動配置),支持service nginx start命令
  • /var/log/nginx:日誌文件夾,/var/log/nginx/error.log:錯誤日誌文件,/var/log/nginx/access.log:訪問日誌文件
  • /etc/nginx/nginx.conf:Nginx全局站點配置文件,日誌文件能夠在/etc/nginx/nginx.conf中配置,默認讀取的配置文件
  • /etc/nginx/conf.d:自定義Nginx站點配置文件存放目錄
  • /etc/nginx/conf.d/default.conf:網站默認站點配置
  • /usr/share/nginx/html:網站文件默認存放目錄
  • sites-available:則是管理大量站點時服務器的一種通用配置。
  • sites-enabled:則是一種單獨配置,須要使用enabled時,須要使用ln命令軟鏈接到相應網站。
sudo ln -s ~/path/to/your/mysite/mysite_nginx.conf /etc/nginx/sites-enabled/

/etc/nginx/nginx.conf中有以下語句:html

include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;

可見,配置文件放在sites-avaliable文件夾中,須要建立軟鏈接在sites-enabled中,纔會生效。nginx

server_name的做用實際上是當該機器上同時部署了其餘域名服務時起做用的。segmentfault

若是nginx中只配置一個server域的話,則nginx是不會去進行server_name的匹配的。由於只有一個server域,也就是這有一個虛擬主機,那麼確定是發送到該nginx的全部請求均是要轉發到這一個域的,即使作一次匹配也是沒有用的。還不如干脆直接就省了。若是一個http域的server域有多個,nginx纔會根據$hostname去匹配server_name進而把請求轉發到匹配的server域中。此時的匹配會按照匹配的優先級進行,一旦匹配成功進不會再進行匹配服務器

參考:網站

location接受兩個參數,一個字符串或者正則,和一段代碼。字符串用於匹配某個特定目錄。.net

location / {
         autoindex on;
         autoindex_exact_size off; # 默認是開,以b爲單位,關閉後,會顯示MB GB

注意點

nginx 默認的帳號權限過低,沒有部分文件的訪問權限,致使訪問時出現 403 Forbidden日誌

配置文件 /etc/nginx/nginx.confcode

user  nginx;

應該修改成:server

user root;

Nginx運行

/usr/sbin/nginx -h # 查看幫助
/usr/sbin/nginx -c /etc/nginx/nginx.conf # 默認也會讀取該配置文件,因此,能夠不加-c參數
nginx # 運行/usr/sbin目錄下的nginx的命令
nginx -s reload # 運行這句話的前提是,nginx正在運行,重載,若是以前運行了stop,那麼會提示出錯  "/run/nginx.pid" failed
service nginx start
service nginx status

FAQ

Q1:nginx: [error] open() "/usr/local/var/run/nginx.pid" failed (2: No such file or directory)

Q2:中文亂碼

Nginx的server的配置內容,增長一行:charset utf-8;htm

Q3:權限問題致使Nginx 403 Forbidden錯誤的解決方法

參考

相關文章
相關標籤/搜索