ubuntu-server下nginx安裝配置

目的:使用nginx進行反向代理兩個tornado進程實例

一些可能會要的linux命令:(你安裝失敗後,慢慢卸載刪掉重來)javascript

ps -ef | grep nginx
kill -9 pid
apt-get --purge remove nginx;卸載nginx,同時刪除相關配置
find  /  -name  nginx*;全局查找相關文件
rm -rf  filename;強制刪掉

操做步驟:

一、apt-get update;更新資源列表php

二、apt-get install nginx;安裝nginxcss

使用apt-get進行安裝,請注意保證你的80端口沒有被其餘程序佔用,由於他會主動幫你開啓服務,否則安裝會有莫名奇妙的報錯,致使缺乏一些文件。lsof -i:8088;查看8088端口是否有程序在佔用。

三、whereis nginx;html

四、進入/etc/nginx修改nginx.conf配置文件java

在http{}增長以下:node

  

nginx.conf配置文件參數介紹:linux

user www-data;  # 運行用戶
worker_processes 1; # 指定nginx要開啓的子進程數量,運行過程當中監控每一個進程消耗內存(通常幾M~幾十M不等)根據實際狀況進行調整,一般數量是CPU內核數量的整數倍
error_log /var/log/nginx/error.log info; #  定義錯誤日誌文件的位置及輸出級別【debug / info/notice/warn/error/crit】
pid /var/run/nginx.pid; # pid用來指定進程id的存儲文件的位置

# nginx服務器的工做模式的一些操做配置
events {
    use  epoll; # epoll是多路複用IO(I/OMultiplexing)中的一種方式,可是僅用於linux2.6以上內核,能夠大大提升nginx的性能
    worker_connections 1024; # 單個後臺worker process進程的最大併發連接數
    # multi_accept on; # 配置指定nginx在收到一個新鏈接通知後儘量多的接受更多的鏈接
}

# http模塊是nginx最核心的一個模塊,配置項也是比較多的,項目中會設置到不少的實際業務場景,須要根據硬件信息進行適當的配置,常規狀況下,使用默認配置便可
http {
    # 基礎配置
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    # server_tokens off;

    # server_names_hash_bucket_size 64;
    # server_name_in_redirect off;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    ##
    # SSL證書配置
    ##

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
    ssl_prefer_server_ciphers on;

    ##
    # 日誌配置
    ##

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    ##
    # Gzip 壓縮配置
    ##

    gzip on;
    gzip_disable "msie6";

    # gzip_vary on;
    # gzip_proxied any;
    # gzip_comp_level 6;
    # gzip_buffers 16 8k;
    # gzip_http_version 1.1;
    # gzip_types text/plain text/css application/json application/javascripttext/xml application/xml application/xml+rss text/javascript;

    ##
    # 虛擬主機配置(這裏虛擬主機的配置就是下面介紹的server{}的配置,能夠以文件的形式導入,以下,也能夠直接寫server{})
    ##

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
    # 可選上面的文件寫法和這裏的直接寫
    server {
        listen xxx;
        server_name xxxx;
        .......
        location /{
            root xxx;
            index xxx;
            ......
        }
    }

    # 負載均衡配置
    upstream name {
        ....
    }
}

nginx.conf參數配置介紹

1) 基礎配置nginx

sendfile on:配置on讓sendfile發揮做用,將文件的回寫過程交給數據緩衝去去完成,而不是放在應用中完成,這樣的話在性能提高有有好處
tc_nopush on:讓nginx在一個數據包中發送全部的頭文件,而不是一個一個單獨發
tcp_nodelay on:讓nginx不要緩存數據,而是一段一段發送,若是數據的傳輸有實時性的要求的話能夠配置它,發送完一小段數據就馬上能獲得返回值,可是不要濫用哦

keepalive_timeout 10:給客戶端分配鏈接超時時間,服務器會在這個時間事後關閉鏈接。通常設置時間較短,可讓nginx工做持續性更好
client_header_timeout 10:設置請求頭的超時時間
client_body_timeout 10:設置請求體的超時時間
send_timeout 10:指定客戶端響應超時時間,若是客戶端兩次操做間隔超過這個時間,服務器就會關閉這個連接

limit_conn_zone $binary_remote_addr zone=addr:5m :設置用於保存各類key的共享內存的參數,
limit_conn addr 100: 給定的key設置最大鏈接數

server_tokens:雖然不會讓nginx執行速度更快,可是能夠在錯誤頁面關閉nginx版本提示,對於網站安全性的提高有好處哦
include /etc/nginx/mime.types:指定在當前文件中包含另外一個文件的指令
default_type application/octet-stream:指定默認處理的文件類型能夠是二進制
type_hash_max_size 2048:混淆數據,影響三列衝突率,值越大消耗內存越多,散列key衝突率會下降,檢索速度更快;值越小key,佔用內存較少,衝突率越高,檢索速度變慢

2) 日誌配置web

access_log logs/access.log:設置存儲訪問記錄的日誌
error_log logs/error.log:設置存儲記錄錯誤發生的日誌

3) SSL證書加密算法

ssl_protocols:指令用於啓動特定的加密協議,nginx在1.1.13和1.0.12版本後默認是ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2,TLSv1.1與TLSv1.2要確保OpenSSL >= 1.0.1 ,SSLv3 如今還有不少地方在用但有很多被攻擊的漏洞。
ssl prefer server ciphers:設置協商加密算法時,優先使用咱們服務端的加密套件,而不是客戶端瀏覽器的加密套件

4) 壓縮配置

gzip 是告訴nginx採用gzip壓縮的形式發送數據。這將會減小咱們發送的數據量。
gzip_disable 爲指定的客戶端禁用gzip功能。咱們設置成IE6或者更低版本以使咱們的方案可以普遍兼容。
gzip_static 告訴nginx在壓縮資源以前,先查找是否有預先gzip處理過的資源。這要求你預先壓縮你的文件(在這個例子中被註釋掉了),從而容許你使用最高壓縮比,這樣nginx就不用再壓縮這些文件了(想要更詳盡的gzip_static的信息,請點擊這裏)。
gzip_proxied 容許或者禁止壓縮基於請求和響應的響應流。咱們設置爲any,意味着將會壓縮全部的請求。
gzip_min_length 設置對數據啓用壓縮的最少字節數。若是一個請求小於1000字節,咱們最好不要壓縮它,由於壓縮這些小的數據會下降處理此請求的全部進程的速度。
gzip_comp_level 設置數據的壓縮等級。這個等級能夠是1-9之間的任意數值,9是最慢可是壓縮比最大的。咱們設置爲4,這是一個比較折中的設置。
gzip_type 設置須要壓縮的數據格式。上面例子中已經有一些了,你也能夠再添加更多的格式。

5) 文件緩存配置

open_file_cache 打開緩存的同時也指定了緩存最大數目,以及緩存的時間。咱們能夠設置一個相對高的最大時間,這樣咱們能夠在它們不活動超過20秒後清除掉。
open_file_cache_valid 在open_file_cache中指定檢測正確信息的間隔時間。
open_file_cache_min_uses 定義了open_file_cache中指令參數不活動時間期間裏最小的文件數。
open_file_cache_errors 指定了當搜索一個文件時是否緩存錯誤信息,也包括再次給配置中添加文件。咱們也包括了服務器模塊,這些是在不一樣文件中定義的。若是你的服務器模塊不在這些位置,你就得修改這一行來指定正確的位置。

server模塊

srever模塊配置是http模塊中的一個子模塊,用來定義一個虛擬訪問主機,也就是一個虛擬服務器的配置信息

server {
    listen        80;
    server_name localhost    192.168.1.100;
    root        /nginx/www;
    index        index.php index.html index.html;
    charset        utf-8;
    access_log    logs/access.log;
    error_log    logs/error.log;
    ......
}

核心配置信息以下:

  • server:一個虛擬主機的配置,一個http中能夠配置多個server

  • server_name:用力啊指定ip地址或者域名,多個配置之間用空格分隔

  • root:表示整個server虛擬主機內的根目錄,全部當前主機中web項目的根目錄

  • index:用戶訪問web網站時的全局首頁

  • charset:用於設置www/路徑中配置的網頁的默認編碼格式

  • access_log:用於指定該虛擬主機服務器中的訪問記錄日誌存放路徑

  • error_log:用於指定該虛擬主機服務器中訪問錯誤日誌的存放路徑

location模塊

location模塊是nginx配置中出現最多的一個配置,主要用於配置路由訪問信息

在路由訪問信息配置中關聯到反向代理、負載均衡等等各項功能,因此location模塊也是一個很是重要的配置模塊

基本配置

location / {
    root    /nginx/www;
    index    index.php index.html index.htm;
    proxy_pass  http://mysvr ; #請求轉向定義的服務器列表 
    error_page   500 502 503 504 /50x.html;# 定義錯誤提示頁面
}

location /:表示匹配訪問根目錄

root:用於指定訪問根目錄時,訪問虛擬主機的web目錄

index:在不指定訪問具體資源時,默認展現的資源文件列表

反向代理配置方式

經過反向代理代理服務器訪問模式,經過proxy_set配置讓客戶端訪問透明化

location / {
    proxy_pass http://localhost:8888;
    proxy_set_header X-real-ip $remote_addr;
    proxy_set_header Host $http_host;
}

uwsgi配置

wsgi模式下的服務器配置訪問方式

location / {
    include uwsgi_params;
    uwsgi_pass localhost:8888
}

upstream模塊

upstream模塊主要負責負載均衡的配置,經過默認的輪詢調度方式來分發請求到後端服務器

簡單的配置方式以下

upstream name {
    ip_hash;
    server 192.168.1.100:8000;
    server 192.168.1.100:8001 down;
    server 192.168.1.100:8002 max_fails=3;
    server 192.168.1.100:8003 fail_timeout=20s;
    server 192.168.1.100:8004 max_fails=3 fail_timeout=20s;
}

核心配置信息以下

  • ip_hash:指定請求調度算法,默認是weight權重輪詢調度,能夠指定

    (上面若是不寫ip_hash,則默認輪流分配給每一個server進行處理,指定後,同一個ip會指定一個server來處理)

  • server host:port:分發服務器的列表配置

  • -- down:表示該主機暫停服務

  • -- max_fails:表示失敗最大次數,超過失敗最大次數暫停服務

  • -- fail_timeout:表示若是請求受理失敗,暫停指定的時間以後從新發

以上內容參考來自

https://blog.csdn.net/tsummerb/article/details/79248015

三、nginx -t;檢查配置文件是否正確

四、service nginx reload;重載

五、service nginx restart;重啓

nginx命令

service nginx {start|stop|status|restart|reload|configtest|}
/usr/sbin/nginx -v;查看版本

六、打開網頁看看是否成功

七、進行反向代理設置(上面的8088口,我已經設置好了反向代理)

  設置配置示例:https://www.cnblogs.com/sixiweb/p/3988805.html

  

  配置後重載,重啓,OK

 

nginx詳解推薦:https://blog.csdn.net/tsummerb/article/details/79248015

相關文章
相關標籤/搜索