Home  >  Article  >  Operation and Maintenance  >  Analysis of Nginx installation examples in Linux

Analysis of Nginx installation examples in Linux

WBOY
WBOYforward
2023-05-22 08:46:051277browse

Use the system binary source method to install

On the ubuntu/debian system

sudo apt-get install nginx

or the redhat/centos system

sudo yum install nginx

The method is the simplest and fastest way, but it is not the best way. Let’s talk about this main problem below.

Advantages

  • All installation binary dependencies have been processed, no need to worry about compatibility issues, it can be used out of the box

  • You don’t need to deal with the connection configuration and user permissions of nginx, we have already written this for you

  • Don’t worry about nginx bug maintenance and upgrade issues, just get the latest system directly That’s it

  • Uninstallation is simple, just one command

  • Simple log maintenance, automatically truncate the day’s log, compress and save

Disadvantages

  • Cannot choose the installed version

  • Cannot choose the compiled module independently

  • Extended functions become very troublesome and need to be recompiled

  • The directory structure is complex, the configuration file is under /etc/, and the deployment file is under /var/www

  • Restarting the service and modifying the configuration require root permissions

  • Performance is slightly worse Compile and install

If you are a Linux newbie, it is definitely recommended to use this method of installation. You don’t need to consider compilation dependencies. You can use it directly after installation. But if your server is used in a production environment and is being developed and gradually improved, this method is not recommended. Third-party modules may be added in the future, and they must be compiled and installed at that time (discussed below). When restarting the server, do not use the root user, but use sudo to briefly gain root. If your server is used to deploy some static files, mainly for some web spaces, and usually uses the ftp tool to deploy files, there is definitely no problem with this method.

Compile and install

I won’t write about the advantages and disadvantages. Basically, just reverse the above. To install using this method, you must know a little knowledge about Linux compilation, and only moderate Linux users can control it. I saw that most tutorials on the Internet install the compilation dependencies directly in /usr/local/. This method is not good. If we want to uninstall these dependencies in the future, we will find it very troublesome. You can't just delete it directly under the category. Some Linux distributions will write the installation files into the configuration files. I don't know where to find these configuration files. If a dependent version affects other software, how to deal with version issues. We just wanted to install nginx, but it caused a lot of problems.

Compilation environment preparation

Before you start, make sure your Linux is prepared with gcc, make, wget, g software.

Create a category to store downloaded files, enter the directory to download the dependent library source files

Downloading openssl is mainly used for ssl module encryption and supports https

wget https://www.openssl.org/source/openssl-1.0.2s.tar.gz

Download pcre to implement support for address redirection, address rewriting functions, localtion instructions and regular expressions

wget https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz

Download zlib gzip compression module

wget https://zlib.net/zlib-1.2.11.tar.gz

Download nginx

wget http://nginx.org/download/nginx-1.17.1.tar.gz

Use tar to decompress all files

ls *.tar.gz | xargs -n1 tar xzvf

Compilation options

Use ./configure to set various nginx parameter scripts, including the paths to source and configuration files , compiler options, linkage handling methods and module lists. The script does this by creating the makefiles required to compile the code and install nginx open source.

参数 描述
–prefix=98953a78f52873edae60a617ec082494 nginx安装目录,以及有其他配置脚本选项的路径设置的所有相对路径的基本位置。默认值/usr/local/nginx
–sbin-path=7988e5ef09cb060996e437e0d2342881/sbin/nginx
–conf-path=98953a78f52873edae60a617ec082494 nginx配置文件的名称。但是,您可以通过在nginx命令行上使用选项指定其他文件来始终在启动时覆盖此值。默认值:aac119f8a3a563a827b4e4c50481b4e7 conf / nginx.conf-c 2334ac29606bf8a170583e4f7533b1f4
–pid-path=98953a78f52873edae60a617ec082494 nginx.pid文件的名称,用于存储nginx主进程的进程id 。安装后,可以使用nginx配置文件中的pid指令更改文件名的路径。默认值:aac119f8a3a563a827b4e4c50481b4e7 /logs/nginx.pid
–error-log-path=98953a78f52873edae60a617ec082494 error,warn和诊断数据的日志文件的名称。安装后,可以使用nginx配置文件中的error_log指令更改文件名。默认值:aac119f8a3a563a827b4e4c50481b4e7 /logs/error.log
–http-log-path=98953a78f52873edae60a617ec082494 http服务器请求的主日志文件的名称。安装后,始终可以使用nginx配置文件中的access_log指令更改文件名。默认值:aac119f8a3a563a827b4e4c50481b4e7 /logs/access.log
–user=8a11bc632ea32a57b3e3693c7987c420 nginx运行进程的拥有者。安装后,可以使用nginx配置文件中的user指令更改名称。默认:nobody
–group=name nginx运行进程的拥有者用户组。安装后,可以使用nginx配置文件中的user指令更改名称。默认值:–user选项设置的值
–with-pcre=98953a78f52873edae60a617ec082494 pcre库源代码的路径,这是位置指令和rewrite模块中正则表达式支持所必需的
–with-pcre-jit 使用“即时编译”支持(pcre_jit指令)构建pcre库
–with-zlib=98953a78f52873edae60a617ec082494 zlib库的源代码路径,gzip模块需要该路径
–with-http_ssl_modul 启用https支持
–with-http_v2_module 开启 http/2请求支持

还要太多编译参数我就不一一列举,有兴趣的同学可以自己去

参看

编译安装

./configure \
  --with-openssl=../openssl-1.0.2s \
  --with-pcre=../pcre-8.43 \
  --with-zlib=../zlib-1.2.11 \
  --with-pcre-jit --user=admin \
  --prefix=/home/admin/nginx \
  --with-http_ssl_module \
  --with-http_v2_module

输出以下信息,说明依赖没问题

configuration summary
 + using pcre library: ../pcre-8.43
 + using openssl library: ../openssl-1.0.2s
 + using zlib library: ../zlib-1.2.11
 
 nginx path prefix: "/home/admin/nginx"
 nginx binary file: "/home/admin/nginx/sbin/nginx"
 nginx modules path: "/home/admin/nginx/modules"
 nginx configuration prefix: "/home/admin/nginx/conf"
 nginx configuration file: "/home/admin/nginx/conf/nginx.conf"
 nginx pid file: "/home/admin/nginx/logs/nginx.pid"
 nginx error log file: "/home/admin/nginx/logs/error.log"
 nginx http access log file: "/home/admin/nginx/logs/access.log"
 nginx http client request body temporary files: "client_body_temp"
 nginx http proxy temporary files: "proxy_temp"
 nginx http fastcgi temporary files: "fastcgi_temp"
 nginx http uwsgi temporary files: "uwsgi_temp"
 nginx http scgi temporary files: "scgi_temp"

编译

make

安装

make install

设置权限

因为linux设置普通用户,不能占用1024一下的端口,直接启动nginx会出现权限不足的错误。将nginx分配给root用户,在分配特殊权限。

sudo chown root nginx
sudo chmod u+s nginx

The above is the detailed content of Analysis of Nginx installation examples in Linux. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:yisu.com. If there is any infringement, please contact admin@php.cn delete