【手工編譯安裝nginx(裡面包含支持ssl3的openssl)】
cd ~
wget
https://nginx.org/download/nginx-1.27.4.tar.gztar xf nginx-1.27.4.tar.gz
wget
https://github.com/openssl/openssl/releases/download/OpenSSL_1_1_1w/openssl-1.1.1w.tar.gztar xf openssl-1.1.1w.tar.gz
cd nginx-1.27.4
./configure --prefix=/opt/nginx-1.27.4 --with-http_ssl_module --with-openssl=../openssl-1.1.1w --with-openssl-opt="enable-ssl3 enable-ssl3-method enable-weak-ssl-ciphers" --with-http_v2_module
make
sudo make install
安裝完成後,/opt下只有一個nginx-1.27.4文件夾,沒有單獨的openssl文件夾。
查看編譯出來的nginx可執行文件的版本:
$ /opt/nginx-1.27.4/sbin/nginx -V
nginx version: nginx/1.27.4
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.1.1w 11 Sep 2023
TLS SNI support enabled
configure arguments: --prefix=/opt/nginx-1.27.4 --with-http_ssl_module --with-openssl=../openssl-1.1.1w --with-openssl-opt='enable-ssl3 enable-ssl3-method enable-weak-ssl-ciphers' --with-http_v2_module
可見openssl是被直接打包到nginx可執行文件裏面了。
【測試】
啟動:sudo /opt/nginx-1.27.4/sbin/nginx
重啟:sudo /opt/nginx-1.27.4/sbin/nginx -s reload
關閉:sudo /opt/nginx-1.27.4/sbin/nginx -s stop
【開啟https(支持IE6)】
修改/opt/nginx-1.27.4/conf/nginx.conf文件,取消註釋有listen 443的那個server塊。
把ssl_certificate和ssl_certificate_key改成自己的證書文件。
ssl_ciphers HIGH:!aNULL:!MD5;改成ssl_ciphers HIGH:MEDIUM:!MD5:!RC4;
下面加一句ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
重啟nginx伺服器即可用IE6訪問。
【開啟http2】
server_name localhost;下面加一句http2 on;
重啟nginx伺服器。
【開機啟動(這個方法只能用於CentOS系統)】
關閉nginx伺服器:sudo /opt/nginx-1.27.4/sbin/nginx -s stop
創建/usr/lib/systemd/system/opt_nginx.service文件,內容如下:
[Unit]
Description=opt_nginx
After=network.target
[Service]
Type=forking
ExecStartPre=/opt/nginx-1.27.4/sbin/nginx -t
ExecStart=/opt/nginx-1.27.4/sbin/nginx
ExecReload=/opt/nginx-1.27.4/sbin/nginx -s reload
ExecStop=/opt/nginx-1.27.4/sbin/nginx -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
啟動nginx伺服器:sudo systemctl start opt_nginx
設置為開機啟動:sudo systemctl enable opt_nginx
【其他設置】
設置上傳文件的最大尺寸:
http塊內,server塊外添加
# set maximum post size
client_max_body_size 20m;