The source code is always downloaded from the Nginx site for compilation and installation, from manual mode to automatic script. However, if you want to deploy multiple machines, this method is obviously not good, so do not drag the deployment into code compilation. So today I tried the Ubuntu installation package. After executing apt-getinstallnginx, nginx is automatically installed and the startup script is created. Run nginx-v to find that the version is 1.2.1, which is not bad. Run nginx-V to observe the loaded module.
The source code is always downloaded from the Nginx site for compilation and installation, from manual mode to automatic script. However, if you want to deploy multiple machines, this method is obviously not good, so do not drag the deployment into code compilation.
So today I tried the Ubuntu installation package.
After executing apt-get install nginx, nginx is automatically installed and the startup script is created.
Run nginx-v to find that the version is 1.2.1, which is not bad.
Run nginx-V to check the loaded module and find the http_ssl module.
With-http_ssl_module
Everything is good. The complete configuration parameters are as follows:
- Nginx-V
- Nginx version: nginx/1.2.1
- Tls sni support enabled
- Configure arguments: -- prefix =/etc/nginx -- conf-path =/etc/nginx. conf -- error-log-path =/var/log/nginx/error. log -- http-client-body-temp-path =/var/lib/nginx/body -- http-fastcgi-temp-path =/var/lib/nginx/fastcgi -- http- log-path =/var/log/nginx/access. log -- http-proxy-temp-path =/var/lib/nginx/proxy -- http-scgi-temp-path =/var/lib/nginx/scgi -- http-uwsgi- temp-path =/var/lib/nginx/uwsgi -- lock-path =/var/lock/nginx. lock -- pid-path =/var/run/nginx. pid -- with-pcre-jit -- with-debug -- with-http_addition_module -- with-http_dav_module -- with-http_geoip_module -- with-http_gzip_static_module -- with-http_image_filter_module -- with-http_realip_module -- with-http_stub_status_module -- with-http_ssl_module -- with-http_sub_module -- with-http_xslt_module -- with-ipv6 =/usr/include /openssl -- with-md5 =/usr/include/openssl -- with-mail -- with-mail_ssl_module -- add-module =/build/buildd/nginx-1.2.1/debian/modules/nginx-auth-pam -- add -module =/build/buildd/nginx-1.2.1/debian/modules/nginx-echo -- add-module =/build/buildd/nginx-1.2.1/debian/modules/nginx-upstream-fair -- add -module =/build/buildd/nginx-1.2.1/debian/modules/nginx-dav-ext-module
Let's look at the/etc/init. d/nginx script:
- #! /Bin/sh
- ### BEGIN INIT INFO
- # Provides: nginx
- # Required-Start: $ local_fs $ remote_fs $ network $ syslog
- # Required-Stop: $ local_fs $ remote_fs $ network $ syslog
- # Default-Start: 2 3 4 5
- # Default-Stop: 0 1 6
- # Short-Description: starts the nginx web server
- # Description: starts nginx using start-stop-daemon
- ### END INIT INFO
- PATH =/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
- DAEMON =/usr/sbin/nginx
- NAME = nginx
- DESC = nginx
- # Include nginx defaults if available
- If [-f/etc/default/nginx]; then
- ./Etc/default/nginx
- Fi
- Test-x $ DAEMON | exit 0
- Set-e
- ./Lib/lsb/init-functions
- Test_nginx_config (){
- If $ DAEMON-t $ DAEMON_OPTS>/dev/null 2> & 1; then
- Return 0
- Else
- $ DAEMON-t $ DAEMON_OPTS
- Return $?
- Fi
- }
- Case "$1" in
- Start)
- Echo-n "Starting $ DESC :"
- Test_nginx_config
- # Check if the ULIMIT is set in/etc/default/nginx
- If [-n "$ ULIMIT"]; then
- # Set the ulimits
- Ulimit $ ULIMIT
- Fi
- Start-stop-daemon -- start -- quiet -- pidfile/var/run/$ NAME. pid \
- -- Exec $ DAEMON -- $ DAEMON_OPTS | true
- Echo "$ NAME ."
- ;;
- Stop)
- Echo-n "Stopping $ DESC :"
- Start-stop-daemon -- stop -- quiet -- pidfile/var/run/$ NAME. pid \
- -- Exec $ DAEMON | true
- Echo "$ NAME ."
- ;;
- Restart | force-reload)
- Echo-n "Restarting $ DESC :"
- Start-stop-daemon -- stop -- quiet -- pidfile \
- /Var/run/$ NAME. pid -- exec $ DAEMON | true
- Sleep 1
- Test_nginx_config
- # Check if the ULIMIT is set in/etc/default/nginx
- If [-n "$ ULIMIT"]; then
- # Set the ulimits
- Ulimit $ ULIMIT
- Fi
- Start-stop-daemon -- start -- quiet -- pidfile \
- /Var/run/$ NAME. pid -- exec $ DAEMON -- $ DAEMON_OPTS | true
- Echo "$ NAME ."
- ;;
- Reload)
- Echo-n "Reloading $ DESC configuration :"
- Test_nginx_config
- Start-stop-daemon -- stop -- signal HUP -- quiet -- pidfile/var/run/$ NAME. pid \
- -- Exec $ DAEMON | true
- Echo "$ NAME ."
- ;;
- Configtest | testconfig)
- Echo-n "Testing $ DESC configuration :"
- If test_nginx_config; then
- Echo "$ NAME ."
- Else
- Exit $?
- Fi
- ;;
- Status)
- Status_of_proc-p/var/run/$ NAME. pid "$ DAEMON" nginx & exit 0 | exit $?
- ;;
- *)
- Echo "Usage: $ NAME {start | stop | restart | reload | force-reload | status | configtest}"> & 2
- Exit 1
- ;;
- Esac
- Exit 0
The reload, force-reload, and configtest functions are much more complete than those previously written. Very good.
Nginx is installed in the/usr/sbin/directory.
The process id file is/var/run/nginx. pid.
If the variable $ ULIMIT is defined, it will be used as a parameter for the ulimit command, but it should not be defined by default.
Similarly, you can assign the DAEMON_OPTS variable to the startup parameter. The default value is.
A good BASIC script.
Note: you cannot use pidof nginx to find the process id. Instead, you should only read the content of the process id file:
-
- Root @ sloop2:/etc/init. d # pidof nginx
-
- 6639 6638 6637 6636 6635
- Root @ sloop2:/etc/init. d # cat/var/run/nginx. pid
- 6635
At this time, as many as five nginx servers are started, one master node and four workers.
-
- Root @ sloop2:/etc/init. d # ps-def | grep nginx
-
- Root 6635 1 0? 00:00:00 nginx: master process/usr/sbin/nginx
- Www-data 6636 6635 0? 00:00:00 nginx: worker process
- Www-data 6637 6635 0? 00:00:00 nginx: worker process
- Www-data 6638 6635 0? 00:00:00 nginx: worker process
- Www-data 6639 6635 0? 00:00:00 nginx: worker process
This is called the Master process model, which is better than the previous Single process model. The master initializes the configuration, creates a worker, receives the request, and forwards it to the worker for processing.
The number of workers can be configured. Generally, the number of CPU cores in the system-1 is better.
Where is the nginx configuration file? After running the whereis nginx command, you can see that it is in the/etc/nginx directory.
In the nginx. conf file, the second line is worker_processes settings. The default value is 4. Here I only have two CPU cores, so I set it to 1.