之前安装的H2O不知道为啥,总是崩溃,换Nginx了
第一步,下载最新版代码:
http://nginx.org/download/
第二步,配置:
安装额外软件包:
apt install -y libgcrypt11-dev libpcre3 libpcre3-dev libssl-dev
./configure --prefix=/usr/local/nginx --with-http_sub_module --with-http_stub_status_module --with-ipv6 --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_sub_module
如果提示:PCRE library is not used试试这些操作:
1:apt-get install libpcre*
2:--with-pcre=PCRE安装路径
下载PCRE源码地址(亲测,不能用PCRE2):
https://ftp.pcre.org/pub/pcre/
第三步,编译:
make -j2
如果编译过程中提示少了openssl,可按这个操作:
vim auto/lib/openssl/conf
改为:
第四步,安装:
make install
启动试试:
/usr/nginx/sbin/nginx
停止:
查询nginx ID
ps -ef | grep nginx
从容停止Nginx:
kill -QUIT ID
重启:
kill -HUP ID
配置文件路径:
/usr/nginx/conf/nginx.conf
检测配置文件格式是否正确:
nginx -t -c /usr/nginx/conf/nginx.conf
或者
/usr/nginx/sbin/nginx -t
user root; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include 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 logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 80; server_name www.xxx.com; #charset koi8-r; #access_log logs/host.access.log main; location / { root /home/wwwroot/wz; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ .php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ .php$ { fastcgi_buffer_size 128k; fastcgi_buffers 32 32k; root /home/wwwroot/wz; fastcgi_pass unix:/tmp/php-fpm.sock; fastcgi_index index.php; #include fastcgi.conf; fastcgi_param DOCUMENT_ROOT /home/wwwroot/wz; fastcgi_param SCRIPT_FILENAME /home/wwwroot/wz$fastcgi_script_name; include fastcgi_params; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /.ht { # deny all; #} } # another virtual host using mix of IP-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # HTTPS server # #server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} }
设置systemd:
1 [Unit] 2 Description=nginx optimized HTTP server 3 After=network.target remote-fs.target nss-lookup.target 4 5 [Service] 6 Type=forking 7 PIDFile=/tmp/nginx.pid 8 ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 9 ExecReload=/usr/bin/kill -HUP $MAINPID 10 ExecsTOP=/usr/bin/kill -s QUIT $MAINPID 11 privateTmp=true 12 13 [Install] 14 WantedBy=multi-user.target