免费资源网 – https://freexyz.cn/
简介
Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。其特点是占有内存少,并发能力强,在同类型的网页服务器中表现较好。此外,Nginx也可以作为一个通用的TCP/UDP代理服务器。
Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点开发的,公开版本1.19.6发布于2020年12月15日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。
Nginx可以作为一个HTTP服务器,将服务器上的静态文件(如HTML、图片)通过HTTP协议展现给客户端。同时,Nginx也可以作为反向代理服务器,为后端服务器代理请求。
Nginx应用比较多的场景是作为Web服务器和反向代理服务器,并且可以通过配置虚拟主机提供HTTP Web服务。此外,Nginx也可以提供一定的缓存服务功能。
基于yum
[root@VM-8-17-centos ~]# yum list all | grep nginx nginx.x86_64 1:1.20.1-10.el7 @epel nginx-filesystem.noarch 1:1.20.1-10.el7 @epel collectd-nginx.x86_64 5.8.1-1.el7 epel munin-nginx.noarch 2.0.69-5.el7 epel nginx-all-modules.noarch 1:1.20.1-10.el7 epel nginx-mod-devel.x86_64 1:1.20.1-10.el7 epel nginx-mod-http-image-filter.x86_64 1:1.20.1-10.el7 epel nginx-mod-http-perl.x86_64 1:1.20.1-10.el7 epel nginx-mod-http-xslt-filter.x86_64 1:1.20.1-10.el7 epel nginx-mod-mAIl.x86_64 1:1.20.1-10.el7 epel nginx-mod-stream.x86_64 1:1.20.1-10.el7 epel pagure-web-nginx.noarch 5.13.3-2.el7 epel pcp-pmda-nginx.x86_64 4.3.2-13.el7_9 updates python2-certbot-nginx.noarch 1.11.0-1.el7 epel sympa-nginx.x86_64 6.2.70-2.el7 epel [root@VM-8-17-centos ~]# yum install nginx -y Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile Resolving Dependencies–> Running transaction check —>Package nginx.x86_64 1:1.20.1-10.el7 will be installed –> Processing Dependency: nginx-filesystem = 1:1.20.1-10.el7 for package: 1:nginx-1.20.1-10.el7.x86_64 –>Processing Dependency: libcrypto.so.1.1(OPENSSL_1_1_0)(64bit)for package: 1:nginx-1.20.1-10.el7.x86_64 –>Processing Dependency: libssl.so.1.1(OPENSSL_1_1_0)(64bit)for package: 1:nginx-1.20.1-10.el7.x86_64 –>Processing Dependency: libssl.so.1.1(OPENSSL_1_1_1)(64bit)for package: 1:nginx-1.20.1-10.el7.x86_64 –> Processing Dependency: nginx-filesystem forpackage: 1:nginx-1.20.1-10.el7.x86_64 –> Processing Dependency: libcrypto.so.1.1()(64bit) forpackage: 1:nginx-1.20.1-10.el7.x86_64 –> Processing Dependency: libprofiler.so.0()(64bit) forpackage: 1:nginx-1.20.1-10.el7.x86_64 –> Processing Dependency: libssl.so.1.1()(64bit) for package: 1:nginx-1.20.1-10.el7.x86_64 –>Running transaction check —> Package gperftools-libs.x86_64 0:2.6.1-1.el7 will be installed —>Package nginx-filesystem.noarch 1:1.20.1-10.el7 will be installed —>Package openssl11-libs.x86_64 1:1.1.1k-5.el7 will be installed –> Finished Dependency ResolutionDependencies Resolved ================================================================================================================= Package Arch Version Repository Size ================================================================================================================= Installing: nginx x86_64 1:1.20.1-10.el7 epel 588 k Installing for dependencies: gperftools-libs x86_64 2.6.1-1.el7 os 272 k nginx-filesystem noarch 1:1.20.1-10.el7 epel 24 k openssl11-libs x86_64 1:1.1.1k-5.el7 epel 1.5 M Transaction Summary ================================================================================================================= Install 1 Package (+3 Dependent packages) Total download size: 2.3 M Installed size: 6.6 M Downloading packages: (1/4): nginx-filesystem-1.20.1-10.el7.noarch.rpm | 24 kB 00:00:00 (2/4): nginx-1.20.1-10.el7.x86_64.rpm | 588 kB 00:00:00 (3/4): gperftools-libs-2.6.1-1.el7.x86_64.rpm | 272 kB 00:00:00 (4/4): openssl11-libs-1.1.1k-5.el7.x86_64.rpm | 1.5 MB 00:00:00 —————————————————————————————————————– Total 6.9 MB/s | 2.3 MB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : 1:openssl11-libs-1.1.1k-5.el7.x86_64 1/4 Installing : 1:nginx-filesystem-1.20.1-10.el7.noarch 2/4 Installing : gperftools-libs-2.6.1-1.el7.x86_64 3/4 Installing : 1:nginx-1.20.1-10.el7.x86_64 4/4 Verifying : gperftools-libs-2.6.1-1.el7.x86_64 1/4 Verifying : 1:nginx-filesystem-1.20.1-10.el7.noarch 2/4 Verifying : 1:nginx-1.20.1-10.el7.x86_64 3/4 Verifying : 1:openssl11-libs-1.1.1k-5.el7.x86_64 4/4 Installed: nginx.x86_64 1:1.20.1-10.el7 Dependency Installed: gperftools-libs.x86_64 0:2.6.1-1.el7 nginx-filesystem.noarch 1:1.20.1-10.el7 openssl11-libs.x86_64 1:1.1.1k-5.el7 Complete! [root@VM-8-17-centos ~]# nginx -V nginx version: nginx/1.20.1 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) built with OpenSSL 1.1.1k FIPS 25 Mar 2021 TLS SNI support enabled configure arguments: –prefix=/usr/share/nginx –sbin-path=/usr/sbin/nginx –modules-path=/usr/lib64/nginx/modules –conf-path=/etc/nginx/nginx.conf –error-log-path=/var/log/nginx/error.log –http-log-path=/var/log/nginx/access.log –http-client-body-temp-path=/var/lib/nginx/tmp/client_body –http-proxy-temp-path=/var/lib/nginx/tmp/proxy –http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi –http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi –http-scgi-temp-path=/var/lib/nginx/tmp/scgi –pid-path=/run/nginx.pid –lock-path=/run/lock/subsys/nginx –user=nginx –group=nginx –with-compat –with-debug –with-file-aio –with-google_perftools_module –with-http_addition_module –with-http_auth_request_module –with-http_dav_module –with-http_degradation_module –with-http_flv_module –with-http_gunzip_module –with-http_gzip_static_module –with-http_image_filter_module=dynamic –with-http_mp4_module –with-http_perl_module=dynamic –with-http_random_index_module –with-http_realip_module –with-http_secure_link_module –with-http_slice_module –with-http_ssl_module –with-http_stub_status_module –with-http_sub_module –with-http_v2_module –with-http_xslt_module=dynamic –with-mail=dynamic –with-mail_ssl_module –with-pcre –with-pcre-jit –with-stream=dynamic –with-stream_ssl_module –with-stream_ssl_preread_module –with-threads –with-cc-opt=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong –param=ssp-buffer-size=4 -grecord-gcc-Switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic –with-ld-opt=-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-E [root@VM-8-17-centos ~]# rpm -ql nginx /etc/logrotate.d/nginx /etc/nginx/fastcgi.conf /etc/nginx/fastcgi.conf.default /etc/nginx/fastcgi_params /etc/nginx/fastcgi_params.default /etc/nginx/koi-utf /etc/nginx/koi-win /etc/nginx/mime.types /etc/nginx/mime.types.default /etc/nginx/nginx.conf /etc/nginx/nginx.conf.default /etc/nginx/scgi_params /etc/nginx/scgi_params.default /etc/nginx/uwsgi_params /etc/nginx/uwsgi_params.default /etc/nginx/win-utf /usr/bin/nginx-upgrade /usr/lib/systemd/system/nginx.service /usr/lib64/nginx/modules /usr/sbin/nginx /usr/share/doc/nginx-1.20.1 /usr/share/doc/nginx-1.20.1/CHANGES /usr/share/doc/nginx-1.20.1/README /usr/share/doc/nginx-1.20.1/README.dynamic /usr/share/doc/nginx-1.20.1/UPGRADE-NOTES-1.6-to-1.10 /usr/share/licenses/nginx-1.20.1 /usr/share/licenses/nginx-1.20.1/LICENSE /usr/share/man/man3/nginx.3pm.gz /usr/share/man/man8/nginx-upgrade.8.gz /usr/share/man/man8/nginx.8.gz /usr/share/nginx/html/404.html /usr/share/nginx/html/50x.html /usr/share/nginx/html/en-US /usr/share/nginx/html/icons /usr/share/nginx/html/icons/poweredby.png /usr/share/nginx/html/img /usr/share/nginx/html/index.html /usr/share/nginx/html/nginx-logo.png /usr/share/nginx/html/poweredby.png /usr/share/nginx/modules /usr/share/vim/vimfiles/ftdetect/nginx.vim /usr/share/vim/vimfiles/ftplugin/nginx.vim /usr/share/vim/vimfiles/indent/nginx.vim /usr/share/vim/vimfiles/syntax/nginx.vim /var/lib/nginx /var/lib/nginx/tmp /var/log/nginx /var/log/nginx/access.log /var/log/nginx/error.log [root@VM-8-17-centos nginx]# rpm -ql nginx | grep bin /usr/bin/nginx-upgrade /usr/sbin/nginx [root@VM-8-17-centos nginx]# nginx -h nginx version: nginx/1.20.1 Usage: nginx [-?hvVtTq] [-s signal] [-p prefix] [-e filename] [-c filename] [-g directives] Options: -?,-h : this help -v : show version and exit -V : show version and configure options then exit -t : test configuration and exit -T : test configuration, dump it and exit -q : suppress non-error messages during configuration testing -s signal : send signal to a master process: stop, quit, reopen, reload -p prefix : set prefix path (default: /usr/share/nginx/) -e filename : set error log file (default: /var/log/nginx/error.log) -c filename : set configuration file (default: /etc/nginx/nginx.conf) -g directives : set global directives out of configuration file [root@VM-8-17-centos nginx]# netstat -tnlp | grep 80 [root@VM-8-17-centos nginx]# /usr/sbin/nginx [root@VM-8-17-centos nginx]# netstat -tnlp | grep 80 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 5146/nginx: master tcp6 0 0 :::80 :::* LISTEN 5146/nginx: master [root@VM-8-17-centos nginx]# ps -ef | grep nginx root 5146 1 0 23:19 ? 00:00:00 nginx: master process /usr/sbin/nginx nginx 5147 5146 0 23:19 ? 00:00:00 nginx: worker process nginx 5148 5146 0 23:19 ? 00:00:00 nginx: worker process nginx 5149 5146 0 23:19 ? 00:00:00 nginx: worker process nginx 5150 5146 0 23:19 ? 00:00:00 nginx: worker process root 5281 1769 0 23:20 pts/0 00:00:00 grep –color=auto nginx [root@VM-8-17-centos nginx]# kill -9 5146 [root@VM-8-17-centos nginx]# ps -ef | grep nginx nginx 5147 1 0 23:19 ? 00:00:00 nginx: worker process nginx 5148 1 0 23:19 ? 00:00:00 nginx: worker process nginx 5149 1 0 23:19 ? 00:00:00 nginx: worker process nginx 5150 1 0 23:19 ? 00:00:00 nginx: worker process root 5406 1769 0 23:20 pts/0 00:00:00 grep –color=auto nginx [root@VM-8-17-centos nginx]# kill -9 5147 5148 5149 5150 [root@VM-8-17-centos nginx]# ps -ef | grep nginx root 5671 1769 0 23:21 pts/0 00:00:00 grep –color=auto nginx [root@VM-8-17-centos nginx]# /usr/sbin/nginx [root@VM-8-17-centos nginx]# pwd /var/log/nginx [root@VM-8-17-centos nginx]# ll total 4 -rw-r–r– 1 root root 0 Jun 21 23:19 access.log -rw-r–r– 1 root root 1007 Jun 21 23:23 error.log [root@VM-8-17-centos nginx]# cat error.log 2023/06/21 23:23:02 [emerg] 5986#5986: bind() to 0.0.0.0:80 failed (98: Address already in use) 2023/06/21 23:23:02 [emerg] 5986#5986: bind() to [::]:80 failed (98: Address already in use) 2023/06/21 23:23:02 [emerg] 5986#5986: bind() to 0.0.0.0:80 failed (98: Address already in use) 2023/06/21 23:23:02 [emerg] 5986#5986: bind() to [::]:80 failed (98: Address already in use) 2023/06/21 23:23:02 [emerg] 5986#5986: bind() to 0.0.0.0:80 failed (98: Address already in use) 2023/06/21 23:23:02 [emerg] 5986#5986: bind() to [::]:80 failed (98: Address already in use) 2023/06/21 23:23:02 [emerg] 5986#5986: bind() to 0.0.0.0:80 failed (98: Address already in use) 2023/06/21 23:23:02 [emerg] 5986#5986: bind() to [::]:80 failed (98: Address already in use) 2023/06/21 23:23:02 [emerg] 5986#5986: bind() to 0.0.0.0:80 failed (98: Address already in use) 2023/06/21 23:23:02 [emerg] 5986#5986: bind() to [::]:80 failed (98: Address already in use) 2023/06/21 23:23:02 [emerg] 5986#5986: still could not bind() [root@VM-8-17-centos nginx]# curl 127.0.0.1 [root@VM-8-17-centos nginx]# cat access.log 127.0.0.1 – – [21/Jun/2023:23:24:31 +0800] “GET / HTTP/1.1” 200 4833 “-” “curl/7.29.0” “-” 127.0.0.1 – – [21/Jun/2023:23:24:48 +0800] “GET / HTTP/1.1” 200 4833 “-” “curl/7.29.0” “-” [root@VM-8-17-centos nginx]#基于源码模式
下载地址:http://nginx.org/en/download.html
版本说明
Mainline version:在线版本,正处于开发状态
Stable version :稳定版本(一般下载使用)
Legacy version :遗留版本,遗留的老的版本
mkdir -p /server/download/nginx cd /server/download/nginx wget http://nginx.org/download/nginx-1.24.0.tar.gz tar -xzvf nginx-1.24.0.tar.gz源码结构
drwxr-xr-x 6 1001 1001 4096 2023-07-31 15:32 auto -rw-r–r–1 1001 1001 323312 2023-04-11 09:45 CHANGES -rw-r–r– 1 1001 1001 494234 2023-04-11 09:45 CHANGES.ru drwxr-xr-x2 1001 1001 4096 2023-07-31 15:32 conf -rwxr-xr-x 1 1001 1001 2611 2023-04-11 09:45 configure drwxr-xr-x4 1001 1001 4096 2023-07-31 15:32 contrib drwxr-xr-x 2 1001 1001 4096 2023-07-31 15:32 html -rw-r–r–1 1001 1001 1397 2023-04-11 09:45 LICENSE drwxr-xr-x 2 1001 1001 4096 2023-07-31 15:32 man -rw-r–r– 1 1001 1001 49 2023-04-11 09:45 README drwxr-xr-x 9 1001 1001 4096 2023-07-31 15:32 src src:这是Nginx源码的根目录,包含了Nginx的所有源文件。 core:该目录下存放了Nginx的核心源码,包括定义常用数据结构、体系结构实现等的文件。event:该目录下存放了Nginx的事件系统源码。 http:该目录下存放了Nginx的HTTP服务器实现源码。 mail:该目录下存放了Nginx的邮件服务器实现源码,主要实现对邮件服务依赖的数据结构的定义和初始化。misc:该目录下存放了一些其他文件,包括测试程序中引用的头文件是否与C++兼容的文件,以及支持Google PerTools的文件等。os:该目录下包含了针对不同操作系统下的函数进行封装以及实现核心调用的源码。 auto:该目录下存放了一些自动编译安装相关的脚本和配置文件。 conf:该目录下存放了Nginx的配置文件以及fcgi相关的配置等文件。contrib:该目录下存放了一些实用的工具,如geo配置生成工具等。 html:该目录下存放了默认的网页文件。 man:该目录下存放了Nginx的man手册。添加nginx用户
useradd -s /sbin/nologin nginx -M编译nginx
# 安装 所需依赖yum install -y wget gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel # 配置 nginx #–prefix=<path>:定义服务器文件的完整路径,该路径同时也是configure命令设置的相对路径(除类库源文件外)以及nginx.conf文件定义的相对路径的基准路径。其默认值是/usr/local/nginx。 #–sbin-path=<path>:设置nginx可执行文件的完整路径,该路径仅在安装期间使用,默认路径为prefix/sbin/nginx。 #–conf-path=<path>:设置配置文件nginx.conf的完整路径。如有必要,总是可以在nginx启动时通过命令行参数-cfile指定一个不同的配置文件路径。默认路径为prefix/conf/nginx.conf。 #–pid-path=<path>:设置nginx.pid文件的完整路径,该文件存储了主进程的进程ID。安装完成后,该路径总是可以在nginx.conf文件中用pid指令来修改。默认路径为prefix/logs/nginx.pid。 #–error-log-path=<path>:设置记录主要错误、警告以及调试信息日志的完整路径。安装完成后,该路径总是可以在nginx.conf文件中用error_log指令来修改。默认路径为prefix/logs/error.log。 #–http-log-path=<path>:设置记录HTTP服务器主要请求日志的完整路径。安装完成后,该路径总是可以在nginx.conf文件用access_log指令来修改。默认路径为prefix/logs/access.log。 # –user=name:设置工作进程以某非特权用户的身份运行。安装完成后,该用户名总是可以在nginx.conf文件用user指令来修改。其默认值为nobody。 #–group=name:设置工作进程以某非特权用户的身份运行。安装完成后,该用户名总是可以在nginx.conf用user指令来修改。其默认名称与未授权用户名称相同。 #在Nginx的配置中,“with”和“without”参数用于指定是否包含特定的模块或功能。使用“with”参数可以启用某个模块或功能,使用“without”参数可以禁用某个模块或功能./configure –user=nginx –group=nginx –prefix=/server/application/nginx –conf-path=/etc/nginx/nginx.conf –error-log-path=/var/log/nginx-error.log –pid-path=/var/run/nginx.pid –with-http_stub_status_module –with-http_ssl_module –with-pcre #编译并且安装 make && make install # 配置环境变量echo #nginx config.>>/etc/profile echo export PATH=$PATH:/server/application/nginx/sbin>> /etc/profile source /etc/profile# 配置nginx语法高亮cp -r contrib/vim/ ~/.vim/ cat >~/.vim/filetype.vim <<EOF au BufRead,BufNewFile /etc/nginx/* set ft=nginx EOF nginx -Vnginx 命令行参数
[root->mcode-server->/server/download/nginx/nginx-1.24.0]# nginx -hnginx version: nginx/1.24.0 Usage: nginx [-?hvVtTq] [-s signal] [-p prefix] [-e filename] [-c filename] [-g directives] Options: -?,-h : this help -v : show version and exit -V : show version and configure options then exit -t : test configuration and exit -T : test configuration, dump it and exit -q : suppress non-error messages during configuration testing -s signal : send signal to a master process: stop, quit, reopen, reload -p prefix : set prefix path (default: /server/application/nginx/) -e filename : set error log file (default: /var/log/nginx-error.log) -c filename : set configuration file (default: /etc/nginx/nginx.conf) -g directives : set global directives out of configuration file -c 或 –conf-file:指定配置文件的路径。 -t 或 –test-config:测试配置文件的语法是否正确。 -p 或 –prefix:设置Nginx的安装目录。 -s 或 –signal:向主进程发送信号。 -v 或 –version:显示Nginx的版本信息。 -V 或 –verbose:显示Nginx的版本、编译器版本和配置参数。 -g 或 –global:设置全局配置指令。免费资源网 – https://freexyz.cn/
© 版权声明
THE END
暂无评论内容