1. 程式人生 > >nginx安裝之後新增SSL站點及常用模組介紹

nginx安裝之後新增SSL站點及常用模組介紹

nginx安裝成功之後,用到https的時候,發現安裝的時候沒有新增http_ssl_module。執行程式碼如下:

./configure --prefix=/usr/local/nginx --with-http_stub_status_module  --with-http_ssl_module  

報錯:
./configure: error: SSL modules require the OpenSSL library.
You can either do not enable the modules, or install the OpenSSL library
into the system, or build the OpenSSL library statically from the source
with nginx by using –with-openssl=< path> option.

解決方式:

yum -y install openssl openssl-devel  

安裝成功之後,重新執行上面的配置。然後執行make,把objs中新生產的nginx替換sbin中舊的nginx。這個時候執行nginx -s reload,沒有起作用。幹掉nginx,重新啟動就OK了。



nginx.conf配置如下:

server {
        listen       443 ;
        server_name  xx.xxx.com;
        ssl on;
        ssl_certificate sslkey/xx.xx.com.crt;  #證書檔案路徑
ssl_certificate_key sslkey/xx.xx.com.key; #祕鑰檔案路徑 ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL; ssl_prefer_server_ciphers on; location / { 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_ignore_headers Set-Cookie Cache-Control; proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; proxy_max_temp_file_size 0; proxy_connect_timeout 60; proxy_send_timeout 60; proxy_read_timeout 60; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; proxy_cookie_path / /dev/shm; proxy_pass http://127.0.0.1:8080; } }



nginx編譯引數說明如下:

操作 說明
–prefix= < path > 安裝路徑,如果沒有指定,預設為/usr/local/nginx。
–sbin-path= < path > nginx可執行命令的檔案,如果沒有指定,預設為< prefix >/sbin/nginx。
–conf-path=< path > 在沒有使用-c引數指定的情況下nginx.conf的預設位置,如果沒有指定,預設為< prefix >/conf/nginx.conf。
–pid-path=< path > nginx.pid的路徑,如果沒有在nginx.conf中通過“pid”指令指定,預設為< prefix >/logs/nginx.pid。
–lock-path=< path > nginx.lock檔案路徑,如果沒有指定,預設為< prefix >/logs/nginx.lock。
–error-log-path=< path > 當沒有在nginx.conf中使用“error_log”指令指定時的錯誤日誌位置,如果沒有指定,預設為< prefix >/logs/error.log。
–http-log-path=< path > 當沒有在nginx.conf中使用“access_log”指令指定時的訪問日誌位置,如果沒有指定,預設為< prefix >/logs/access.log。
–user=< user > 當沒有在nginx.conf中使用“user”指令指定時nginx執行的使用者,如果沒有指定,預設為“nobody”。
–group=< group > – 當沒有在nginx.conf中使用“user”指令指定時nginx執行的組,如果沒有指定,預設為“nobody”。
–builddir=DIR 設定構建目錄。
–with-rtsig_module 啟用rtsig模組。
–with-select_module
–without-select_module
如果在configure的時候沒有發現kqueue, epoll, rtsig或/dev/poll其中之一,select模組始終為啟用狀態。
–with-poll_module
–without-poll_module
如果在configure的時候沒有發現kqueue, epoll, rtsig或/dev/poll其中之一,poll模組始終為啟用狀態。
–with-http_ssl_module 啟用ngx_http_ssl_module,啟用SSL支援並且能夠處理HTTPS請求。需要OpenSSL,在Debian系統中,對應的包為libssl-dev。
–with-http_realip_module 啟用ngx_http_realip_module
–with-http_addition_module 啟用ngx_http_addition_module
–with-http_sub_module 啟用ngx_http_sub_module
–with-http_dav_module 啟用ngx_http_dav_module
–with-http_flv_module 啟用ngx_http_flv_module
–with-http_stub_status_module 啟用”server status”(服務狀態)頁
–without-http_charset_module 禁用ngx_http_charset_module
–without-http_gzip_module 禁用ngx_http_gzip_module,如果啟用,需要zlib包。
–without-http_ssi_module 禁用ngx_http_ssi_module
–without-http_userid_module 禁用ngx_http_userid_module
–without-http_access_module 禁用ngx_http_access_module
–without-http_auth_basic_module 禁用ngx_http_auth_basic_module
–without-http_autoindex_module 禁用ngx_http_autoindex_module
–without-http_geo_module 禁用ngx_http_geo_module
–without-http_map_module 禁用ngx_http_map_module
–without-http_referer_module 禁用ngx_http_referer_module
–without-http_rewrite_module 禁用ngx_http_rewrite_module。如果啟用,需要PCRE包。
–without-http_proxy_module 禁用ngx_http_proxy_module
–without-http_fastcgi_module 禁用ngx_http_fastcgi_module
–without-http_memcached_module 禁用ngx_http_memcached_module
–without-http_limit_zone_module 禁用ngx_http_limit_zone_module
–without-http_empty_gif_module 禁用ngx_http_empty_gif_module
–without-http_browser_module 禁用ngx_http_browser_module
–without-http_upstream_ip_hash_module 禁用ngx_http_upstream_ip_hash_module
–with-http_perl_module 啟用ngx_http_perl_module
–with-perl_modules_path=PATH 為perl模組設定路徑
–with-perl=PATH 為perl庫設定路徑
–http-client-body-temp-path=PATH 為http連線的請求實體臨時檔案設定路徑,如果沒有指定,預設為< prefix >/client_body_temp
–http-proxy-temp-path=PATH 為http代理臨時檔案設定路徑,如果沒有指定,預設為< prefix >/proxy_temp
–http-fastcgi-temp-path=PATH 為http fastcgi臨時檔案設定路徑,如果沒有指定,預設為< prefix >/fastcgi_temp
–without-http 禁用HTTP服務
–with-mail 啟用IMAP4/POP3/SMTP代理模組
–with-mail_ssl_module 啟用ngx_mail_ssl_module
–with-cc=PATH 設定C編譯器路徑
–with-cpp=PATH 設定C前處理器路徑
–with-cc-opt=OPTIONS 變數CFLAGS中附加的引數,用於FreeBSD中的PCRE庫,同樣需要指定–with-cc-opt=”-I /usr/local/include”,如果我們使用select()函式則需要同時增加檔案描述符數量,可以通過–with-cc-opt=”-D FD_SETSIZE=2048”指定。
–with-ld-opt=OPTIONS 通過聯結器的附加引數,用於FreeBSD中的PCRE庫,同樣需要指定–with-ld-opt=”-L /usr/local/lib”。
–with-cpu-opt=CPU 指定編譯的CPU,可用的值為: pentium, pentiumpro, pentium3, pentium4, athlon, opteron, amd64, sparc32, sparc64, ppc64
–without-pcre 禁用PCRE庫檔案,同時將禁用HTTP rewrite 模組,如果要在”location”指令中使用正則表示式,同樣需要PCRE庫。
–with-pcre=DIR 設定PCRE庫原始檔路徑。
–with-pcre-opt=OPTIONS 在編譯時為PCRE設定附加引數。
–with-md5=DIR 設定md5庫原始檔路徑。
–with-md5-opt=OPTIONS 在編譯時為md5設定附加引數。
–with-md5-asm 使用md5彙編源。
–with-sha1=DIR 設定sha1庫原始檔路徑。
–with-sha1-opt=OPTIONS 在編譯時為sha1設定附加引數。
–with-sha1-asm 使用sha1彙編源。
–with-zlib=DIR 設定zlib庫原始檔路徑。
–with-zlib-opt=OPTIONS 在編譯時為zlib設定附加引數。
–with-zlib-asm=CPU 為指定的CPU使用zlib彙編源進行優化,可用值為: pentium, pentiumpro。
–with-openssl=DIR 設定openssl庫原始檔路徑。
–with-openssl-opt=OPTIONS 在編譯時為openssl設定附加引數。
–with-debug 啟用debug記錄。
–add-module=PATH 增加一個在PATH中的第三方模組。