在Linux系統安裝Nginx及配置https加密訪問

一、安裝nginx html

①、爲了確保能在 nginx 中使用正則表達式進行更靈活的配置,安裝以前須要肯定系統是否安裝有 PCRE(Perl Compatible Regular Expressions)包。您能夠到 ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ 下載最新的 PCRE 源碼包,使用下面命令下載編譯和安裝 PCRE 包: node

# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.12.tar.bz2
# tar jxvf pcre-8.12.tar.bz2
# cd pcre-8.10
# ./configure –enable-utf8
# make
# make install linux

②、爲nginx建立用戶及用戶組 nginx

# useradd www-nginx
# groupadd www 若是www用戶組已經存在就跳過些步
# gpasswd -a www-nginx www web

③、安裝nginx 正則表達式

# wget http://nginx.org/download/nginx-1.0.3.tar.gz
# tar zxvf nginx-1.0.3.tar.gz
# cd nginx-1.0.3
# ./configure
–prefix=/usr
–sbin-path=/usr/sbin/nginx
–conf-path=/etc/nginx/nginx.conf
–error-log-path=/var/log/nginx/error.log
–pid-path=/var/run/nginx/nginx.pid
–lock-path=/var/lock/nginx.lock
–user=www-nginx
–group=www
–with-http_ssl_module
–with-http_stub_status_module
–with-http_flv_module
–with-http_gzip_static_module
–http-log-path=/var/log/nginx/access.log
–http-client-body-temp-path=/var/tmp/nginx/client/
–http-proxy-temp-path=/var/tmp/nginx/proxy/
–http-fastcgi-temp-path=/var/tmp/nginx/fcgi/
// 簡單安裝 ./configure –user=www-nginx –group=www –prefix=/opt/nginx –with-http_stub_status_module –with-http_ssl_module
# make
# make install 瀏覽器

–with-http_stub_status_module 是爲了啓用 nginx 的 NginxStatus 功能,用來監控 nginx 的當前狀態。
–with-http_ssl_module 啓用http_ssl模塊
–with-ipv6 支持ipv6 服務器

安裝成功後 /opt/nginx 目錄下有四個子目錄分別是:conf、html、logs、sbin 。其中 nginx 的配置文件存放於 conf/nginx.conf,nginx 只有一個程序文件位於 sbin 目錄下的 nginx 文件。確保系統的 80 端口沒被其餘程序佔用,運行 sbin/nginx 命令來啓動 Nginx,打開瀏覽器訪問此機器的 IP,若是瀏覽器出現 Welcome to nginx! 則表示 nginx 已經安裝並運行成功。 session

二、使用 OpenSSL 生成證書 測試

建立並進入sslkey存放目錄
# mkdir /opt/nginx/sslkey
# cd /opt/nginx/sslkey

①、生成RSA密鑰:
# openssl genrsa -out key.pem 2048

②、生成一個證書請求
# openssl req -new -key key.pem -out cert.csr
# //會提示輸入省份、城市、域名信息等,重要的是,email 必定要是你的域名後綴的你能夠拿着這個文件去數字證書頒發機構(即CA)申請一個數字證書。CA會給你一個新的文件cacert.pem,那纔是你的數字證書。

若是是本身作測試,就能夠用下面這個命令來生成證書:
# openssl req -new -x509 -nodes -out server.crt -keyout server.key

③、修改 nginx 配置
upstream payment {
server 127.0.0.1:8080;
server 127.0.0.1:8090;
}

# HTTPS server
#
server {
listen 443;
server_name www.openeasy.net;

ssl on;
ssl_certificate /opt/nginx/sslkey/server.crt;
ssl_certificate_key /opt/nginx/sslkey/server.key;

ssl_session_timeout 5m;

ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;

location / {
proxy_pass http://payment/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 10s;
proxy_read_timeout 10s;
}
}

三、配置jexus linux dotnet服務器集羣

upstream payment {
server 127.0.0.1:8080;
server 127.0.0.1:8090;
}

這裏的server就是你的Jexus的服務器列表具體配置參見 用Jexus V4.2 搭建Linux dotnet web server

經常使用的 Nginx 參數和控制

程序運行參數

Nginx 安裝後只有一個程序文件,自己並不提供各類管理程序,它是使用參數和系統信號機制對 Nginx 進程自己進行控制的。 Nginx 的參數包括有以下幾個:

-c :使用指定的配置文件而不是 conf 目錄下的 nginx.conf 。

-t:測試配置文件是否正確,在運行時須要從新加載配置的時候,此命令很是重要,用來檢測所修改的配置文件是否有語法錯誤。

-v:顯示 nginx 版本號。

-V:顯示 nginx 的版本號以及編譯環境信息以及編譯時的參數。

例如咱們要測試某個配置文件是否書寫正確,咱們可使用如下命令

sbin/nginx – t – c conf/nginx2.conf

經過信號對 nginx 進行控制

nginx 支持下表中的信號:

信號名 做用描述
TERM, INT 快速關閉程序,停止當前正在處理的請求
QUIT 處理完當前請求後,關閉程序
HUP 從新加載配置,並開啓新的工做進程,關閉就的進程,此操做不會中斷請求
USR1 從新打開日誌文件,用於切換日誌,例如天天生成一個新的日誌文件
USR2 平滑升級可執行程序
WINCH 從容關閉工做進程

有兩種方式來經過這些信號去控制 Nginx,第一是經過 logs 目錄下的 nginx.pid 查看當前運行的 Nginx 的進程 ID,經過 kill – XXX 來控制 Nginx,其中 XXX 就是上表中列出的信號名。若是您的系統中只有一個 Nginx 進程,那您也能夠經過 killall 命令來完成,例如運行 killall – s HUP nginx 來讓 Nginx 從新加載配置。

相關文章
相關標籤/搜索