【Nginx认证配置】

一、Nginx的安装配置

[root@hadoop0 ~]# cd /opt/

[root@hadoop0 opt]# ls

apache-flume-1.6.0-bin           bigdata                  gitrepository           ORCLfmap        redis-3.2.0.tar.gz spark-1.3.1-bin-hadoop2.6      zookeeper-3.4.6.tar.gz    apache-flume-1.6.0-bin.tar.gz    data    

hadoop-2.7.2.tar.gz     R-3.0.1   rh            spark-1.3.1-bin-hadoop2.6.tgz

apache-flume-1.6.0-bin.tar.gz.1  elasticsearch-2.3.3      jdk1.7.0_79        R-3.0.1.tar.gz  scala-2.10.5     sqoop-1.4.6   apache-storm-0.9.6.tar.gz        elasticsearch-2.3.3.zip  kafka_2.11-0.9.0.1.tgz  

redis-3.2.0     scala-2.10.5.tgz    sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz

[root@hadoop0 opt]# wget http://nginx.org/download/nginx-1.12.0.tar.gz

--2017-05-08 14:38:46--  http://nginx.org/download/nginx-1.12.0.tar.gz

Resolving nginx.org... 95.211.80.227, 206.251.255.63, 2606:7100:1:69::3f, ...

Connecting to nginx.org|95.211.80.227|:80... connected.

HTTP request sent, awaiting response... 302 Found

Location: http://211.162.74.230:9011/nginx.org/c3pr90ntc0td/download/nginx-1.12.0.tar.gz [following]

--2017-05-08 14:38:49--  http://211.162.74.230:9011/nginx.org/c3pr90ntc0td/download/nginx-1.12.0.tar.gz

Connecting to 211.162.74.230:9011... connected.

HTTP request sent, awaiting response... 200 OK

Length: 980831 (958K) [application/octet-stream]

Saving to: nginx-1.12.0.tar.gz?

100%[=============================>] 980,831     1.09M/s   in 0.9s    

2017-05-08 14:38:50 (1.09 MB/s) - 鈔ginx-1.12.0.tar.gzaved [980831/980831]

[root@hadoop0 opt]# ls

 nginx-1.12.0.tar.gz     redis-3.2.0.tar.gz  spark-1.3.1-bin-hadoop2.6.tgz

apache-storm-0.9.6.tar.gz 

[root@hadoop0 opt]# tar -zxvf nginx-1.12.0.tar.gz 

[root@hadoop0 opt]# cd nginx-1.12.0

[root@hadoop0 nginx-1.12.0]# ls

auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src

[root@hadoop0 nginx-1.12.0]# ./con

conf/      configure  contrib/   

[root@hadoop0 nginx-1.12.0]# ./configure 

./configure: error: the HTTP rewrite module requires the PCRE library.

You can either disable the module by using --without-http_rewrite_module

option, or install the PCRE library into the system, or build the PCRE library

statically from the source with nginx by using --with-pcre=<path> option.

解决方案:

[root@hadoop0 nginx-1.12.0]# yum -y install pcre-devel

Total                                                                                                                                                         1.0 MB/s | 517 kB     00:00     

Running rpm_check_debug

Running Transaction Test

Transaction Test Succeeded

Running Transaction

  Updating   : pcre-7.8-7.el6.i686                                                                                                                                                        1/3 

  Installing : pcre-devel-7.8-7.el6.i686                                                                                                                                                  2/3 

  Cleanup    : pcre-7.8-6.el6.i686                                                                                                                                                        3/3 

  Verifying  : pcre-devel-7.8-7.el6.i686                                                                                                                                                  1/3 

  Verifying  : pcre-7.8-7.el6.i686                                                                                                                                                        2/3 

  Verifying  : pcre-7.8-6.el6.i686                                                                                                                                                        3/3 

Installed:

  pcre-devel.i686 0:7.8-7.el6                                                                                                                                                                 

Dependency Updated:

  pcre.i686 0:7.8-7.el6                                                                                                                                                                       

Complete!

[root@hadoop0 nginx-1.12.0]# ./configure 

creating objs/Makefile

Configuration summary

  + using system PCRE library

  + OpenSSL library is not used

  + using system zlib library

  nginx path prefix: "/usr/local/nginx"

  nginx binary file: "/usr/local/nginx/sbin/nginx"

  nginx modules path: "/usr/local/nginx/modules"

  nginx configuration prefix: "/usr/local/nginx/conf"

  nginx configuration file: "/usr/local/nginx/conf/nginx.conf"

  nginx pid file: "/usr/local/nginx/logs/nginx.pid"

  nginx error log file: "/usr/local/nginx/logs/error.log"

  nginx http access log file: "/usr/local/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"

[root@hadoop0 nginx-1.12.0]# ls 

auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  Makefile  man  objs  README  src

[root@hadoop0 nginx-1.12.0]# make 

sed -e "s|%%PREFIX%%|/usr/local/nginx|" \

                -e "s|%%PID_PATH%%|/usr/local/nginx/logs/nginx.pid|" \

                -e "s|%%CONF_PATH%%|/usr/local/nginx/conf/nginx.conf|" \

                -e "s|%%ERROR_LOG_PATH%%|/usr/local/nginx/logs/error.log|" \

                < man/nginx.8 > objs/nginx.8

make[1]: Leaving directory `/opt/nginx-1.12.0'

[root@hadoop0 nginx-1.12.0]# ls

auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  Makefile  man  objs  README  src

[root@hadoop0 nginx-1.12.0]# /usr/nginx/sbin/nginx -t 

-bash: /usr/nginx/sbin/nginx: No such file or directory

[root@hadoop0 nginx-1.12.0]# /usr/local/nginx/sbin/nginx -t 

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

[root@hadoop0 nginx-1.12.0]# ps -ef | grep nginx

root      8058  2055  0 14:45 pts/0    00:00:00 grep nginx

[root@hadoop0 nginx-1.12.0]# /usr/local/nginx/sbin/nginx 

[root@hadoop0 nginx-1.12.0]# ps -ef | grep nginx

root      8060     1  0 14:45 ?        00:00:00 nginx: master process /usr/local/nginx/sbin/nginx

nobody    8061  8060  0 14:45 ?        00:00:00 nginx: worker process      

root      8063  2055  0 14:45 pts/0    00:00:00 grep nginx

[root@hadoop0 nginx-1.12.0]# cd /usr/local/nginx/

[root@hadoop0 nginx]# ls

client_body_temp  conf  fastcgi_temp  html  logs  proxy_temp  sbin  scgi_temp  uwsgi_temp

[root@hadoop0 nginx]# cd conf/

[root@hadoop0 conf]# ls

fastcgi.conf          fastcgi_params          koi-utf  mime.types          nginx.conf          scgi_params          uwsgi_params          win-utf

fastcgi.conf.default  fastcgi_params.default  koi-win  mime.types.default  nginx.conf.default  scgi_params.default  uwsgi_params.default

[root@hadoop0 conf]# cat nginx.conf



 

 

二、增加用户登录认证

nginx.conf配置文件的核心如下:

server {

        listen       80;

        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {

            root   html;

            index  index.html index.htm;

            auth_basic "secret";

            auth_basic_user_file /usr/local/nginx/passwd.db;

        }

}

添加用户核心代码

[root@hadoop0 conf]# htpasswd -c /usr/local/nginx/passwd.db gaojs

New password: 

Re-type new password: 

Adding password for user gaojs

[root@hadoop0 conf]# /usr/local/nginx/sbin/nginx 

[root@hadoop0 conf]# cd  /usr/local/nginx/

[root@hadoop0 nginx]# ls

client_body_temp  conf  fastcgi_temp  html  logs  passwd.db  proxy_temp  sbin  scgi_temp  uwsgi_temp

[root@hadoop0 nginx]# ls -ls

total 40

4 drwx------. 2 nobody root 4096 May  8 14:44 client_body_temp

4 drwxr-xr-x. 2 root   root 4096 May  8 15:02 conf

4 drwx------. 2 nobody root 4096 May  8 14:44 fastcgi_temp

4 drwxr-xr-x. 2 root   root 4096 May  8 14:43 html

4 drwxr-xr-x. 2 root   root 4096 May  8 14:44 logs

4 -rw-r--r--. 1 root   root   20 May  8 15:02 passwd.db

4 drwx------. 2 nobody root 4096 May  8 14:44 proxy_temp

4 drwxr-xr-x. 2 root   root 4096 May  8 14:43 sbin

4 drwx------. 2 nobody root 4096 May  8 14:44 scgi_temp

4 drwx------. 2 nobody root 4096 May  8 14:44 uwsgi_temp

[root@hadoop0 nginx]# rm -rf passwd.db

[root@hadoop0 nginx]# /usr/local/nginx/sbin/nginx -s reload



 

附件:

[root@hadoop0 nginx]# whereis htpasswd

htpasswd: /usr/bin/htpasswd /usr/share/man/man1/htpasswd.1.gz

[root@hadoop0 nginx]# htpasswd -h 

Usage:

        htpasswd [-cmdpsD] passwordfile username

        htpasswd -b[cmdpsD] passwordfile username password

        htpasswd -n[mdps] username

        htpasswd -nb[mdps] username password

 -c  Create a new file.

 -n  Don't update file; display results on stdout.

 -m  Force MD5 encryption of the password.

 -d  Force CRYPT encryption of the password (default).

 -p  Do not encrypt the password (plaintext).

 -s  Force SHA encryption of the password.

 -b  Use the password from the command line rather than prompting for it.

 -D  Delete the specified user.

On Windows, NetWare and TPF systems the '-m' flag is used by default.

On all other systems, the '-p' flag will probably not work.

-c创建一个加密文件。

-n不更新加密文件,只将htpasswd命令加密后的用户名和密码显示在屏幕上。

-m默认htpassswd命令采用MD5算法对密码进行加密,该参数默认情况下可以不加。

-d表示htpassswd命令采用CRYPT算法对密码进行加密。

-s表示htpassswd命令采用SHA算法对密码进行加密。

-p表示htpassswd命令不对密码进行进行加密,即明文密码。

-b表示在htpassswd命令行中一并输入用户名和密码而不是根据提示输入密码。

-D表示删除指定的用户。

[root@hadoop0 nginx]# ls

client_body_temp  conf  fastcgi_temp  html  logs  passwd.db  proxy_temp  sbin  scgi_temp  uwsgi_temp

[root@hadoop0 nginx]# cat passwd.db 

gaojs2:Iw02ZoXegS/zI

[root@hadoop0 nginx]# 

猜你喜欢

转载自gaojingsong.iteye.com/blog/2372978
今日推荐