编译安装nginx和模块

一 编译安装nginx

yum -y install gcc gcc-c++ pcre-devel zlib-devel openssl-devel
wget http://nginx.org/download/nginx-1.8.1.tar.gz
ls -l
tar xf nginx-1.8.1.tar.gz 
cd nginx-1.8.1/
[root@iscsi nginx-1.8.1]# useradd www -s /sbin/nologin -M
[root@iscsi nginx-1.8.1]# ./configure --help #查看编译时指定的参数
[root@iscsi nginx-1.8.1]# ./configure --user=www --group=www --prefix=/usr/local/nginx-1.8.1 --with-http_stub_status_module --with-http_ssl_module
[root@iscsi nginx-1.8.1]# make && make install

添加nginx模块

[root@iscsi conf]# /usr/local/nginx-1.8.1/sbin/nginx -V
nginx version: nginx/1.8.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --user=www --group=www --prefix=/usr/local/nginx-1.8.1 --with-http_stub_status_module --with-http_ssl_module
增加(--with-file-aio --with-http_realip_module)
[root@iscsi nginx-1.8.1]# ./configure --user=www --group=www --prefix=/usr/local/nginx-1.8.1 --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_module
[root@iscsi nginx-1.8.1]# make ##不要make install,不然就覆盖安装了
[root@iscsi nginx-1.8.1]# ll objs/nginx
-rwxr-xr-x. 1 root root 5308752 Apr 23 02:52 objs/nginx
[root@iscsi nginx-1.8.1]# cp /usr/local/nginx-1.8.1/sbin/nginx /usr/local/nginx-1.8.1/sbin/nginx.20200423
[root@iscsi nginx-1.8.1]# cp objs/nginx /usr/local/nginx-1.8.1/sbin/nginx
cp: overwrite ‘/usr/local/nginx-1.8.1/sbin/nginx’? y
[root@iscsi nginx-1.8.1]# /usr/local/nginx-1.8.1/sbin/nginx -t

添加nginx第三方模块

[root@iscsi 1]# tar xf v0.3.0
[root@iscsi 1]# ll nginx_upstream_check_module-0.3.0/
total 244
-rw-rw-r--. 1 root root      0 Oct  2  2014 CHANGES
-rw-rw-r--. 1 root root   5483 Oct  2  2014 check_1.2.1.patch
-rw-rw-r--. 1 root root   7130 Oct  2  2014 check_1.2.2+.patch
-rw-rw-r--. 1 root root   7094 Oct  2  2014 check_1.2.6+.patch
-rw-rw-r--. 1 root root   6791 Oct  2  2014 check_1.5.12+.patch
-rw-rw-r--. 1 root root   6701 Oct  2  2014 check_1.7.2+.patch
-rw-rw-r--. 1 root root   6943 Oct  2  2014 check.patch
-rw-rw-r--. 1 root root    749 Oct  2  2014 config
drwxrwxr-x. 2 root root     43 Oct  2  2014 doc
-rw-rw-r--. 1 root root   1709 Oct  2  2014 nginx-sticky-module.patch
drwxrwxr-x. 2 root root     29 Oct  2  2014 nginx-tests
-rw-rw-r--. 1 root root  46860 Oct  2  2014 ngx_http_upstream_check_handler.c
-rw-rw-r--. 1 root root   3718 Oct  2  2014 ngx_http_upstream_check_handler.h
-rw-rw-r--. 1 root root 112230 Oct  2  2014 ngx_http_upstream_check_module.c
-rw-rw-r--. 1 root root    529 Oct  2  2014 ngx_http_upstream_check_module.h
-rw-rw-r--. 1 root root   2848 Oct  2  2014 ngx_http_upstream_jvm_route_module.patch
-rw-rw-r--. 1 root root  11384 Oct  2  2014 README
drwxrwxr-x. 6 root root     79 Oct  2  2014 test
-rw-rw-r--. 1 root root   3342 Oct  2  2014 upstream_fair.patch
drwxrwxr-x. 2 root root     81 Oct  2  2014 util
[root@iscsi 1]# cd  nginx-1.8.1/
[root@iscsi nginx-1.8.1]# yum install patch -y
[root@iscsi nginx-1.8.1]# patch -p1 <../nginx_upstream_check_module-0.3.0/check_1.7.2+.patch 
patching file src/http/modules/ngx_http_upstream_ip_hash_module.c
patching file src/http/modules/ngx_http_upstream_least_conn_module.c
patching file src/http/ngx_http_upstream_round_robin.c
Hunk #1 succeeded at 9 with fuzz 2.
Hunk #2 succeeded at 95 (offset 4 lines).
Hunk #3 succeeded at 159 (offset 4 lines).
Hunk #4 succeeded at 227 (offset 4 lines).
Hunk #5 succeeded at 339 (offset 4 lines).
Hunk #6 succeeded at 381 (offset 4 lines).
Hunk #7 succeeded at 443 (offset 4 lines).
Hunk #8 succeeded at 541 (offset -1 lines).
patching file src/http/ngx_http_upstream_round_robin.h
[root@iscsi nginx-1.8.1]# ./configure --user=www --group=www --prefix=/usr/local/nginx-1.8.1 --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_module --add-module=../nginx_upstream_check_module-0.3.0
[root@iscsi nginx-1.8.1]# make
make[1]: Leaving directory `/home/1/nginx-1.8.1'
make -f objs/Makefile manpage
make[1]: Entering directory `/home/1/nginx-1.8.1'
sed -e "s|%%PREFIX%%|/usr/local/nginx-1.8.1|" \
    -e "s|%%PID_PATH%%|/usr/local/nginx-1.8.1/logs/nginx.pid|" \
    -e "s|%%CONF_PATH%%|/usr/local/nginx-1.8.1/conf/nginx.conf|" \
    -e "s|%%ERROR_LOG_PATH%%|/usr/local/nginx-1.8.1/logs/error.log|" \
    < man/nginx.8 > objs/nginx.8
make[1]: Leaving directory `/home/1/nginx-1.8.1'
[root@iscsi nginx-1.8.1]# cp /usr/local/nginx-1.8.1/sbin/nginx /usr/local/nginx-1.8.1/sbin/nginx.202004231
[root@iscsi nginx-1.8.1]# cp objs/nginx /usr/local/nginx-1.8.1/sbin/nginx
cp: overwrite ‘/usr/local/nginx-1.8.1/sbin/nginx’? y
nginx: the configuration file /usr/local/nginx-1.8.1/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx-1.8.1/conf/nginx.conf test is successful

一部分配置文件

[root@iscsi conf]# cat nginx.conf
    include /usr/local/nginx/conf/conf.d/*.conf;
    upstream 8080 {
         server ip1:8080 weight=1;
         server ip2:8080 weight=1;
check interval=3000 rise=2 fall=2 timeout=1000 type=http;
    }
    upstream 8040 {
         server ip1:8040 weight=1;
         server ip2:8040 weight=1;
check interval=3000 rise=2 fall=2 timeout=1000 ;
    }

查看启动和访问

[root@iscsi nginx-1.8.1]# /usr/local/nginx-1.8.1/sbin/nginx 
[root@iscsi nginx-1.8.1]# ps -ef|grep nginx
root      43889      1  0 03:07 ?        00:00:00 nginx: master process /usr/local/nginx-1.8.1/sbin/nginx
root      43890  43889  0 03:07 ?        00:00:00 nginx: worker process
root      43891  43889  0 03:07 ?        00:00:00 nginx: worker process
root      43892  43889  0 03:07 ?        00:00:00 nginx: worker process
root      43893  43889  0 03:07 ?        00:00:00 nginx: worker process
root      43895  38595  0 03:07 pts/3    00:00:00 grep --color=auto nginx
[root@iscsi nginx-1.8.1]# lsof -i :8080
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nginx   43889 root    7u  IPv4 105688      0t0  TCP *:webcache (LISTEN)
nginx   43890 root    7u  IPv4 105688      0t0  TCP *:webcache (LISTEN)
nginx   43891 root    7u  IPv4 105688      0t0  TCP *:webcache (LISTEN)
nginx   43892 root    7u  IPv4 105688      0t0  TCP *:webcache (LISTEN)
nginx   43893 root    7u  IPv4 105688      0t0  TCP *:webcache (LISTEN)
[root@iscsi nginx-1.8.1]# firewall-cmd --zone=public --add-port=8080/tcp --permanent 
success
[root@iscsi nginx-1.8.1]# firewall-cmd --reload
success
[root@iscsi nginx-1.8.1]# curl -I ip1
curl: (7) Failed connect to ip1:80; Connection refused
[root@iscsi nginx-1.8.1]# systemctl stop firewalld.service 
[root@iscsi nginx-1.8.1]# curl -I http://ip1:8080/Server/
HTTP/1.1 200 
Server: nginx/1.8.1
Date: Thu, 23 Apr 2020 10:09:27 GMT
Content-Type: text/html;charset=UTF-8
Connection: keep-alive
Access-Control-Allow-Methods: GET, POST, PUT, OPTIONS
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
Access-Control-Max-Age: 3600
Access-Control-Allow-Headers: Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers,userID,userId,Authentication,authentication,content-type

命令帮助

[root@iscsi nginx-1.8.1]# /usr/local/nginx-1.8.1/sbin/nginx -h
nginx version: nginx/1.8.1
Usage: nginx [-?hvVtq] [-s signal] [-c filename] [-p prefix] [-g directives]

Options:
  -?,-h         : this help
  -v            : show version and exit
  -V            : show version and configure options then exit
  -t            : test configuration 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/local/nginx-1.8.1/)
  -c filename   : set configuration file (default: conf/nginx.conf)
  -g directives : set global directives out of configuration file

 

posted @ 2020-04-23 18:21  春困秋乏夏打盹  阅读(204)  评论(0编辑  收藏  举报