[linux] Nginx 安裝架設Web伺服器

過去習慣使用 Apache架設網站.
近來看到有的同事在使用Nginx架設站台.

稍微做了一點功課,
Nginx 是開源的、有效率的 Web 伺服器實作,支援 HTTP、HTTPS、SMTP、POP3、IMAP 等協議。 他的Repo提供了 Nginx 1.0 ~ 1.7 各個版本的映像檔。
他相對Apache 來說相對輕量, 內耗比較輕, 也可設定反向代理等等功能. 
也是最近很熱門的架站套件.
這邊來說一下安裝方法.

官方下載頁

可自行用wget下載, Windows版本也可從此頁面下載.

想使用 yum 安裝也可, 
這邊有官方教學
這邊使用CentOS6.8安裝
加入檔案 /etc/yum.repos.d/nginx.repo

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$basearch/
gpgcheck=0
enabled=1

接著就可以下指令安裝

yum install nginx

跑完就安裝完成了.
很簡單.

啟動下指令即可

service nginx start
chkconfig nginx on

預設是80 port.

可用瀏覽器開啟 http://127.0.0.1/ 
如果顯示 niginx歡迎頁面就表示成功了

Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.

 

這邊講一下設定檔
設定檔主檔 /etc/nginx/nginx.conf
 

# Nginx的啟用 Linux 帳戶
user  nginx;
 
# Nginx的執行緒數量(建議為你的 CPU 核心數 x 2)
worker_processes  2;
 
# Error Log 檔的位置
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 記錄格式
    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 檔的位置
    access_log  /var/log/nginx/access.log  main;
 
    sendfile        on;
    #tcp_nopush     on;
 
    keepalive_timeout  65;
 
    # 預設不會自動啟動 gzip 壓縮
    #gzip  on;
 
    # 載入 /etc/nginx/conf.d/ 下的所有設定檔
    include /etc/nginx/conf.d/*.conf;
}

預設主機的配置 /etc/nginx/conf.d/default.conf

server {
    # 預設監聽的port為80
    listen       80;
    server_name  localhost;
 
    # 預設編碼,若未設定,讓網頁中 meta 或 header 會自行定義
    #charset koi8-r;
 
    # 可修改 log 的存放位置
    #access_log  /var/log/nginx/log/host.access.log  main;
 
    # 根目錄
    location / {
        # 實際的檔案位置
        root   /usr/share/nginx/html;
        # 預設首頁檔名
        index  index.html index.htm;
    }
 
    # 發生 404 導入的錯誤頁面檔名
    #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 Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}