nginx簡單配置


本文主要圍繞下面幾個點進行敘述。

1、什么是nginx?

Nginx (engine x) 是一款輕量級的Web 服務器 、反向代理服務器及電子郵件(IMAP/POP3)代理服務器。

2、什么是反向代理?

反向代理(Reverse Proxy)方式是指以代理服務器來接受internet上的連接請求,然后將請求轉發給內部網絡上的服務器,並將從服務器上得到的結果返回給internet上請求連接的客戶端,此時代理服務器對外就表現為一個反向代理服務器。

關於反向代理,網上還有很多資料可以幫助理解。

3、window與Linux上的安裝

簡單說一下window上的安裝,Linux上的后面補充。

首先下載地址:http://nginx.org/en/download.html

我現在的版本是nginx/Windows-1.10.2,找個位置,解壓,來簡單說明一下解壓下的文件目錄:

其他的就不介紹,說一下用的主要的倆文件,conf下是一些配置文件,logs中是一些日志文件。

我解壓的路徑是D:\yh,以為這個路徑說明,進入\nginx-1.10.2文件夾下,shift+鼠標右鍵,進入命令窗口,如圖:

下面介紹window下我使用比較多的幾個命令。

4、nginx常用的幾個命令

進入如上命令窗口后,start nginx,就可以啟動nginx,不放心嗎?你可以到任務管理中查看一下。

當修改了配置文件后,需要重新reload,命令是 nginx -s reload,這個命令也很常用,當然還有其他命令,如下

nginx -s stop 快速關閉Nginx,可能不保存相關信息,並迅速終止web服務。

nginx -s quit 平穩關閉Nginx,保存相關信息,有安排的結束web服務。

nginx -s reopen 重新打開日志文件。

nginx -c filename 為 Nginx 指定一個配置文件,來代替缺省的。

nginx -t 不運行,而僅僅測試配置文件。nginx 將檢查配置文件的語法的正確性,並嘗試打開配置文件中所引用到的文件。

nginx -v 顯示 nginx 的版本。

nginx -V 顯示 nginx 的版本,編譯器版本和配置參數。

記得使用命令啟動nginx或者重新reload的時候,可參考logs下的幾個日志文件。

5、結合項目進行實際配置

其實我配置nginx僅僅是為了完成http的反向代理,這里沒有復雜的配置,想使用自己配置的域名進行訪問我的項目【拋棄localhost:9090】,至於使用 nginx做負載均衡,等后面配置到了再在博文的補充完善。

conf/nginx.conf配置如下:

#運行的用戶
#user  nobody;

#啟動進程,通常設置成和cpu的數量相等
worker_processes  1;

#全局錯誤日志
error_log  D:/yh/nginx-1.10.2/logs/error.log;
error_log  D:/yh/nginx-1.10.2/logs/notice.log  notice;
error_log  D:/yh/nginx-1.10.2/logs/info.log  info;

#PID文件,記錄當前啟動的nginx的進程ID
pid       D:/yh/nginx-1.10.2/logs/nginx.pid;

#工作模式及連接數上限
events {
    worker_connections  1024; #單個后台worker process進程的最大並發鏈接數
}

#設定http服務器,利用它的反向代理功能提供負載均衡支持
http {

    #設定mime類型(郵件支持類型),類型由mime.types文件定義
    include       D:/yh/nginx-1.10.2/conf/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  D:/yh/nginx-1.10.2/logs/access.log  main;
	
    #sendfile 指令指定 nginx 是否調用 sendfile 函數(zero copy 方式)來輸出文件,對於普通應用,
    #必須設為 on,如果用來進行下載等應用磁盤IO重負載應用,可設置為 off,以平衡磁盤與網絡I/O處理速度,降低系統的uptime.
    sendfile        on;
    #tcp_nopush     on;

    #連接超時時間
    #keepalive_timeout  0;
    keepalive_timeout 120;

    #gzip壓縮開關
    #gzip  on;
	
    #設定實際的服務器列表 
    upstream server1{
        server 127.0.0.1:9090;
    }

    #HTTP服務器
    server {
	
	#監聽80端口,80端口是知名端口號,用於HTTP協議
        listen       80;
		
	#定義自己的訪問url,hosts中有配置
        server_name  www.heyLuer.com;

	#首頁
	index index.html
		 
	# 項目路徑
	root D:\yh\workspace\xx\src\main\webapp;
		
	# 編碼格式
	charset utf-8;
		
	#代理配置參數
        proxy_connect_timeout 180;
        proxy_send_timeout 180;
        proxy_read_timeout 180;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarder-For $remote_addr;
		
        #access_log  logs/host.access.log  main;

        location / {
            	proxy_pass http://server1;
        }

		
        #錯誤處理頁面(可選擇性配置)
        #error_page   404              /404.html;
        #error_page   500 502 503 504  /50x.html;
        #location = /50x.html {
        #    root   html;
        #}
        
    }

}

配置如上,寫的很清晰,tomcat啟動項目,使用域名訪問,正常訪問項目,配置ok!

由於能力有限,以上內容如有錯誤,歡迎大家的指正。

后續補充其他內容......  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM