12.6 Nginx安装;12.7 Nginx默认虚拟主机;12.8 Nginx用户认证;12.9 Nginx域名重定向

简介:

12.6 Nginx安装

1. 进入下载安装包目录:

[root@hao-01 ~]# cd /usr/local/src/

2. 下载nginx安装包

[root@hao-01 src]# wget http://nginx.org/download/nginx-1.12.1.tar.gz

3. 解包解压nginx安装包:

[root@hao-01 src]# tar zxf nginx-1.12.1.tar.gz

4. 进入解压nginx目录下:

[root@hao-01 src]# cd nginx-1.12.1

5. 编译nginx

[root@hao-01 nginx-1.12.1]# ./configure --prefix=/usr/local/nginx

6. makemake install

[root@hao-01 nginx-1.12.1]# make && make install

7. /etc/init.d/目录下,创建nginx启动脚本,并写入内容

[root@hao-01 nginx-1.12.1]# vim /etc/init.d/nginx

https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D15Z/etc_init.d_nginx

写入内容如下:

#!/bin/bash

# chkconfig: - 30 21

# description: http service.

# Source Function Library

. /etc/init.d/functions

# Nginx Settings

NGINX_SBIN="/usr/local/nginx/sbin/nginx"

NGINX_CONF="/usr/local/nginx/conf/nginx.conf"

NGINX_PID="/usr/local/nginx/logs/nginx.pid"

RETVAL=0

prog="Nginx"

start()

{

echo -n $"Starting $prog: "

mkdir -p /dev/shm/nginx_temp

daemon $NGINX_SBIN -c $NGINX_CONF

RETVAL=$?

echo

return $RETVAL

}

stop()

{

echo -n $"Stopping $prog: "

killproc -p $NGINX_PID $NGINX_SBIN -TERM

rm -rf /dev/shm/nginx_temp

RETVAL=$?

echo

return $RETVAL

}

reload()

{

echo -n $"Reloading $prog: "

killproc -p $NGINX_PID $NGINX_SBIN -HUP

RETVAL=$?

echo

return $RETVAL

}

restart()

{

stop

start

}

configtest()

{

$NGINX_SBIN -c $NGINX_CONF -t

return 0

}

case "$1" in

start)

start

;;

stop)

stop

;;

reload)

reload

;;

restart)

restart

;;

configtest)

configtest

;;

*)

echo $"Usage: $0 {start|stop|reload|restart|configtest}"

RETVAL=1

esac

exit $RETVAL

8. nginx(启动脚本) 设定755权限

[root@hao-01 nginx-1.12.1]# chmod 755 /etc/init.d/nginx

9. 添加 nginx服务 到服务列表

[root@hao-01 nginx-1.12.1]# chkconfig --add nginx

10. 设定 nginx服务 开机启动

[root@hao-01 nginx-1.12.1]# chkconfig nginx on

11. 进入...conf目录下:

[root@hao-01 nginx-1.12.1]# cd /usr/local/nginx/conf/

12. 把...conf目录下的nginx.conf文件重命名

[root@hao-01 conf]# mv nginx.conf nginx.conf.1

13. 在...conf目录下,创建新的nginx.conf文件,并写入内容

[root@hao-01 conf]# vim /usr/local/nginx/conf/nginx.conf

https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D15Z/nginx.conf

写入内容如下:

user nobody nobody;

worker_processes 2;

error_log /usr/local/nginx/logs/nginx_error.log crit;

pid /usr/local/nginx/logs/nginx.pid;

worker_rlimit_nofile 51200;

events

{

use epoll;

worker_connections 6000;

}

http

{

include mime.types;

default_type application/octet-stream;

server_names_hash_bucket_size 3526;

server_names_hash_max_size 4096;

log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]'

' $host "$request_uri" $status'

' "$http_referer" "$http_user_agent"';

sendfile on;

tcp_nopush on;

keepalive_timeout 30;

client_header_timeout 3m;

client_body_timeout 3m;

send_timeout 3m;

connection_pool_size 256;

client_header_buffer_size 1k;

large_client_header_buffers 8 4k;

request_pool_size 4k;

output_buffers 4 32k;

postpone_output 1460;

client_max_body_size 10m;

client_body_buffer_size 256k;

client_body_temp_path /usr/local/nginx/client_body_temp;

proxy_temp_path /usr/local/nginx/proxy_temp;

fastcgi_temp_path /usr/local/nginx/fastcgi_temp;

fastcgi_intercept_errors on;

tcp_nodelay on;

gzip on;

gzip_min_length 1k;

gzip_buffers 4 8k;

gzip_comp_level 5;

gzip_http_version 1.1;

gzip_types text/plain application/x-javascript text/css text/htm

application/xml;

server

{

listen 80;

server_name localhost;

index index.html index.htm index.php;

root /usr/local/nginx/html;

location ~ \.php$

{

include fastcgi_params;

fastcgi_pass unix:/tmp/php-fcgi.sock;

#fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;

}

}

}

14. 检测nginx配置文件是否有错?

[root@hao-01 conf]# /usr/local/nginx/sbin/nginx -t

15. 启动nginx服务:

[root@hao-01 conf]# /etc/init.d/nginx start

16. 搜索nginx服务是否启动?

[root@hao-01 conf]# ps aux |grep nginx

17. 创建一个1.php测试文件

[root@hao-01 conf]# vim /usr/local/nginx/html/1.php

写入内容如下:

<?php

echo "This is nginx test page.";

18. curl访问localhost域名下的1.php测试文件:

[root@hao-01 conf]# curl localhost/1.phpwKiom1mMDnaDxIurAAATio02vfA899.png

spacer.gif

12.7 Nginx默认虚拟主机

1. 编辑nginx.conf配置文件:

[root@hao-01 conf]# vim /usr/local/nginx/conf/nginx.conf

删掉黄框中内容:wKiom1mMDpWwVxU6AAB2T9FXa1k194.png

spacer.gif写入一行内容:

include vhost/*.conf;wKiom1mMDq2QN4t8AAAoGn8MF3Y148.png

spacer.gif2. 在当前目录下,创建vhost目录:

[root@hao-01 conf]# mkdir /usr/local/nginx/conf/vhost

3. 进入...vhost目录下:

[root@hao-01 conf]# cd /usr/local/nginx/conf/vhost

4. 在当前...vhost目录下,创建一个aaa.com.conf文件,并写入内容

[root@hao-01 vhost]# vim /usr/local/nginx/conf/vhost/aaa.com.conf

写入内容:

server

{

listen 80 default_server;

server_name aaa.com;

index index.html index.htm index.php;

root /data/wwwroot/default;

}

wKiom1mMDvjxmGpKAAAgXTjfIbs656.png

spacer.gif5. 创建default目录:

(如果根目录下,没有/data/wwwroot/目录,需自行创建即可)

[root@hao-01 vhost]# mkdir /data/wwwroot/default

6. 进入...default目录下:

[root@hao-01 vhost]# cd /data/wwwroot/default/

7. 在当前...default目录下,创建一个index.html文件,并写入内容

[root@hao-01 default]# vim index.html

写入内容:

This is the default site.

8. 检测nginx配置文件是否有错?

[root@hao-01 default]# /usr/local/nginx/sbin/nginx -t

9. 重新加载nginx配置文件(非重启!):

[root@hao-01 default]# /usr/local/nginx/sbin/nginx -s reload

10. 测试curl访问设定的默认虚拟主机主域名aaa.com:

[root@hao-01 default]# curl -x127.0.0.1:80 aaa.comwKiom1mMD0Hy4KGFAAANJrEx0OI548.png

spacer.gif11. 测试curl访问非默认虚拟主机主域名111.com:

(访问111.com,跳转到了默认虚拟主机的主域名aaa.com上)

[root@hao-01 default]# curl -x127.0.0.1:80 111.comwKiom1mMD1miWqCLAAAPABvOn_0700.png

spacer.gif

12.8 Nginx用户认证


网站主页面(根目录)访问受限(需用户认证)

1. 进入...vhost目录下:

[root@hao-01 ~]# cd /usr/local/nginx/conf/vhost/

2. 在当前...vhost目录下,创建一个index.html文件,并写入内容

[root@hao-01 vhost]# vim /usr/local/nginx/conf/vhost/test.com.conf

写入内容:

server

{

listen 80;

server_name test.com;

index index.html index.htm index.php;

root /data/wwwroot/test.com;


location /

{

auth_basic "Auth";

auth_basic_user_file /usr/local/nginx/conf/htpasswd;

}

}

3. yum安装apache:直接用htpasswd命令,创建nginx用户名密码!

(没有安装apache,用yum安装httpd也可以!yum install httpd)

(从创建第二个,不要-c参数,要不会把之前创建用户名的全部覆盖!!!)

[root@hao-01 vhost]# htpasswd -c /usr/local/nginx/conf/htpasswd hao

4. 编译安装apache:需用htpasswd命令的绝对路径执行创建nginx用户名密码!创建(从创建第二个,不要-c参数,要不会把之前创建用户名的全部覆盖!!!)

[root@hao-01 vhost]# /usr/local/apache2.4/bin/htpasswd -c /usr/local/nginx/conf/htpasswd hao

5. 查看nginx存放用户密码的htpasswd文件内容:

[root@hao-01 vhost]# cat /usr/local/nginx/conf/htpasswdwKioL1mMD4CCElP4AAAQxmhj3TU499.png

spacer.gif6. 创建nginx第二个用户(切记htpasswd 后面不要跟-c):

(从创建第二个,不要-c参数,要不会把之前创建用户名的全部覆盖!!!)

[root@hao-01 vhost]# /usr/local/apache2.4/bin/htpasswd /usr/local/nginx/conf/htpasswd hao1

7. 再次查看nginx存放用户密码的htpasswd文件内容:

[root@hao-01 vhost]# cat /usr/local/nginx/conf/htpasswdwKioL1mMD5rTqdrSAAAcfMnkjI0349.png

spacer.gif8. 检测nginx配置文件是否有错?

[root@hao-01 default]# /usr/local/nginx/sbin/nginx -t

9. 重新加载nginx配置文件(非重启!):

[root@hao-01 default]# /usr/local/nginx/sbin/nginx -s reload

10. /data/wwwroot/目录下,创建test.com虚拟主机网站目录:

[root@hao-01 vhost]# mkdir /data/wwwroot/test.com/

11. ...test.com目录下,创建index.html文件,并把" "里的内容,重定向到此文件中:

[root@hao-01 vhost]# echo "test.com" > /data/wwwroot/test.com/index.html

12. curl 访问test.com网站,提示401原因没有用户名密码授权

[root@hao-01 vhost]# curl -x127.0.0.1:80 test.com -IwKioL1mMD7LQ6HXLAAA3peSE5Bc194.png

spacer.gif13. curl -u指定用户名:密码 访问test.com网站:

(访问到了网站内容;表示用户认证成功,访问通)

[root@hao-01 vhost]# curl -uhao:admin -x127.0.0.1:80 test.comwKiom1mMD9CDdEkHAAAOqqUz_2M135.png

spacer.gif

网站根目录下,指定子目录访问受限(需用户认证)

1. /data/wwwroot/test.com网站目录下,创建admin目录:

[root@hao-01 vhost]# mkdir /data/wwwroot/test.com/admin/

2. 在...admin目录下,创建index.html文件,并把" "里的内容,重定向到此文件中:

[root@hao-01 vhost]# echo "admin mulu" > /data/wwwroot/test.com/admin/index.html

3. 编辑test.com虚拟主机配置文件:

[root@hao-01 vhost]# vim /usr/local/nginx/conf/vhost/test.com.conf

编辑内容(指定认证目录为:根目录下的admin/目录):

   location /admin/

wKiom1mMD-nRgBvxAAAvzNlLkkw510.png

spacer.gif4. 检测nginx配置文件是否有错?

[root@hao-01 default]# /usr/local/nginx/sbin/nginx -t

5. 重新加载nginx配置文件(非重启!):

[root@hao-01 default]# /usr/local/nginx/sbin/nginx -s reload

6. curl 访问test.com/admin/目录,提示401,原因没有用户名密码授权

[root@hao-01 vhost]# curl -x127.0.0.1:80 test.com/admin/ -IwKiom1mMECizsjUaAABBBgQ8GUs623.png

spacer.gif7. curl -u指定用户名:密码 访问test.com/admin/目录

[root@hao-01 vhost]# curl -uhao:admin -x127.0.0.1:80 test.com/admin/ wKiom1mMEEKzEnTMAAAaZrjRd0U969.png

spacer.gif8. 根目录没有设定认证,现在curl不指定用户名密码直接可以访问test.com网站:

[root@hao-01 vhost]# curl -x127.0.0.1:80 test.com -IwKiom1mMEFuiru0oAAARv_EvygM169.png

spacer.gif

12.9 Nginx域名重定向

1. 编辑test.com虚拟主机配置文件:

[root@hao-01 vhost]# vim /usr/local/nginx/conf/vhost/test.com.conf

重新写入内容:

 server

 {

           listen 80;

           server_name test.com test2.com test3.com;

           index index.html index.htm index.php;

           root /data/wwwroot/test.com;

           if ($host != 'test.com') {

                rewrite ^/(.*)$ http://test.com/$1 permanent;

           }

}

wKiom1mMEHThdejbAABK0ihUmmI609.png

2. 检测nginx配置文件是否有错?

[root@hao-01 default]# /usr/local/nginx/sbin/nginx -t

3. 重新加载nginx配置文件(非重启!):

[root@hao-01 default]# /usr/local/nginx/sbin/nginx -s reload

4. curl 访问副域名test2.com跳转到了主域名,状态码是301

[root@hao-01 vhost]# curl -x127.0.0.1:80 test2.com -IwKiom1mMEQHAAfg1AAAs_Gkf08Q217.png

spacer.gif5. curl 访问副域名test3.com跳转到了主域名,状态码是301

[root@hao-01 vhost]# curl -x127.0.0.1:80 test3.com -IwKioL1mMERuRF5e7AAAuTUKGaUM406.png 










本文转自 主内安详 51CTO博客,原文链接:http://blog.51cto.com/zhuneianxiang/1955083,如需转载请自行联系原作者
相关实践学习
基于函数计算快速搭建Hexo博客系统
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
目录
相关文章
|
22天前
|
应用服务中间件 nginx
Nginx中如何配置中文域名?
Nginx中如何配置中文域名?
30 0
|
1月前
|
应用服务中间件 nginx
Nginx安装nginx-rtmp-module模块
【2月更文挑战第4天】 nginx中的模块虽然就是类似插件的概念,但是它无法像VsCode那样轻松的安装扩展。 nginx要安装其它模块必须同时拿到nginx源代码和模块源代码,然后手动编译,将模块打到nginx中,最终生成一个名为nginx的可执行文件。
67 6
|
11天前
|
Linux
Linux安装bind9搭建自己的域名服务器
Linux安装bind9搭建自己的域名服务器
10 0
|
16天前
|
网络协议 应用服务中间件 网络安全
linxu安装nginx
linxu安装nginx
33 0
|
24天前
|
NoSQL 关系型数据库 MySQL
Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
175 0
|
27天前
|
负载均衡 应用服务中间件 nginx
|
29天前
|
应用服务中间件 nginx Windows
windows下快速安装nginx 并配置开机自启动
windows下快速安装nginx 并配置开机自启动
windows下快速安装nginx 并配置开机自启动
|
1月前
|
Kubernetes 负载均衡 应用服务中间件
Ingress Nginx 安装【亲测可用】
Ingress Nginx 安装【亲测可用】
80 2
|
1月前
|
安全 应用服务中间件 nginx
|
1月前
|
负载均衡 应用服务中间件 Linux