nginx(1)之安装、默认网站、目录权限、日志管理

什么是nginx

Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。
其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

nginx安装 

1、关闭防火墙

在Linux系统中默认有防火墙Iptables管理者所有的端口,只启用默认远程连接22端口其他都关闭,咱们上面设置的80等等也是关闭的,所以我们需要先把应用的端口开启。

方法一:直接关闭防火墙,这样性能较好,但安全性较差,如果有前置防火墙可以采取这种方式 

# 关闭防火墙
[root@localhost ~]# service iptables stop
# 关闭开机自启动防火墙
[root@localhost ~]# chkconfig iptables off
[root@localhost ~]# chkconfig --list|grep ipt

下面是防火墙的其他操作命令:

 方法二:将开启的端口加入防火墙白名单中,这种方式较安全但性能也相对较差:

#编辑防火墙白名单
[root@localhost ~]# vim /etc/sysconfig/iptables
#增加下面一行代码
-A INPUT -p tcp -m state -- state NEW -m tcp --dport 80 -j ACCEPT
#保存退出,重启防火墙
[root@localhost ~]# service iptables restart

2、关闭selinux

Linux安装好之后,通常SELinux都是处于默认的开启状态,开启的情况下可能会导致一些服务安装失败。所以,在不需要的情况下完全可以关闭掉。
1、查看SELinux的状态:

[root@localhost ~]# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      28

2、永久关闭SELinux:
修改配置文件/etc/selinux/config,将其中的SELINUX=enforcing改为SELINUX=disabled

[root@localhost ~]# vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
#SELINUX=enforcing
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted

3、重启系统,再执行sestatus查看状态

reboot
[root@localhost ~]# sestatus
SELinux status: disabled
 3、下载Nginx及相关组件

Linux系统是Centos 6.5 64位,我直接切换到root用户下安装:

进入用户目录下载程序:

下载相关组件:

[root@localhost src]# wget http://nginx.org/download/nginx-1.10.2.tar.gz
省略安装内容...
[root@localhost src]# wget http://www.openssl.org/source/openssl-fips-2.0.10.tar.gz
省略安装内容...
[root@localhost src]# wget http://zlib.net/zlib-1.2.11.tar.gz
省略安装内容...
[root@localhost src]# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz
省略安装内容...

安装c++编译环境,如已安装可略过。

4、安装Nginx及相关组件

都是先解压,随后 配置、make和安装三合一。
openssl安装

[root@localhost src]# tar zxvf openssl-fips-2.0.10.tar.gz
省略安装内容...
[root@localhost src]# cd openssl-fips-2.0.10
[root@localhost openssl-fips-2.0.10]# ./config && make && make install
省略安装内容...

pcre安装

[root@localhost src]# tar zxvf pcre-8.40.tar.gz
省略安装内容...
[root@localhost src]# cd pcre-8.40
[root@localhost pcre-8.40]# ./configure && make && make install
省略安装内容...

zlib安装

[root@localhost src]# tar zxvf zlib-1.2.11.tar.gz
省略安装内容...
[root@localhost src]# cd zlib-1.2.11
[root@localhost zlib-1.2.11]# ./configure && make && make install
省略安装内容...

nginx安装

[root@localhost src]# tar zxvf nginx-1.10.2.tar.gz
省略安装内容...
[root@localhost src]# cd nginx-1.10.2
[root@localhost nginx-1.10.2]# ./configure && make && make install
省略安装内容...
5、启动Nginx

先找一下nginx安装到什么位置上了

进入nginx目录并启动
1、用 whereis libpcre.so.1命令找到libpcre.so.1在哪里
2、用 ln -s /usr/local/lib/libpcre.so.1 /lib64 命令做个软连接就可以了
3、用 local/nginx/sbin/nginx 启动Nginx
4、用 ps -aux | grep nginx 查看状态

[root@localhost nginx]# whereis libpcre.so.1
[root@localhost nginx]# ln -s /usr/local/lib/libpcre.so.1 /lib64
[root@localhost nginx]# sbin/nginx
[root@localhost nginx]# ps -aux | grep nginx

 查看nginx是否启动的方法:

[root@bogon nginx]# lsof -i:80

[root@bogon nginx]# netstat -ntpl

进入Linux系统的图形界面,打开浏览器输入localhost会看到下图,说明nginx启动成功。

在浏览器界面上访问:

利用elinks文本浏览器访问,没有缓存!

[root@bogon nginx]# yum install elinks

自定义DNS解析文件:

用的windows系统,配置一下host在“C:\Windows\System32\drivers\etc”下的hosts中配置一下域名重定向: 虚拟机IP  aaa  bbb  ccc。

那么在浏览器输入 http://aaa、 http://bbb都会指向http://主机IP。

nginx常用操作

# 启动
[root@localhost ~]# /usr/local/nginx/sbin/nginx
# 停止/重启
[root@localhost ~]# /usr/local/nginx/sbin/nginx -s stop(quit、reload)
# 命令帮助
[root@localhost ~]# /usr/local/nginx/sbin/nginx -h
# 验证配置文件
[root@localhost ~]# /usr/local/nginx/sbin/nginx -t
# 配置文件
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
# 重启
./sbin/nginx -s reload

nginx配置

配置文件即变量文件,保存软件运行的各种参数。
打开nginx配置文件位于nginx目录下的conf文件夹下:

vim conf/nginx.conf

默认网站

当配置文件有且只有一个server的时候,那么该server就被nginx认为是默认网站,所有发给Nginx服务器80端口的数据都会默认给该server。

默认监听80端口,还可以配置监听其他端口,例如以下配置不仅可以监听80端口,还可以监听81端口:

server {
	listen       80;
	server_name  nginx.test.com;
	charset utf8;
	access_log logs/access_json.log log_json;
	location / {
		root   html;
		index  index.html index.htm;
	}
}
 server {
	listen       81;
	server_name  nginx.test.com;
	charset utf8;
	access_log logs/access_json.log log_json;
	location / {
		root   html;
		index  index.html index.htm;
	}
}

默认会访问 /usr/local/nginx/html/index.html 文件。

在html文件夹下添加a、b、c三个文件夹,分别在其内部添加index.html文件。

[root@bogon html]# ls
50x.html  index.html
[root@bogon html]# mkdir a
[root@bogon html]# mkdir b
[root@bogon html]# mkdir c
[root@bogon html]# echo aaaa > a/index.html
[root@bogon html]# echo bbb > b/index.html
[root@bogon html]# echo cccc > c/index.html
[root@bogon html]# echo bbbb > b/index.html
[root@bogon html]# ls

 查看:

[root@bogon html]# elinks 192.168.244.128/a --dump
   aaaa
[root@bogon html]# elinks 192.168.244.128/b --dump
   bbbb
[root@bogon html]# elinks 192.168.244.128/c --dump
   cccc

在其他系统也可以访问这个页面。 

目录权限控制

location /a {
	# 允许本机访问
	allow 0.0.0.0; 
	deny all;
	return 403;
	# 返回url地址
	return http://www.baidu.com;
}

修改配置文件后步骤:

[root@bogon nginx]# sbin/nginx -t   # 检测修改后的配置文件语法是否有误
[root@bogon nginx]# sbin/nginx -s reload   # 重启nginx

非本机访问a目录:

 

目录访问验证

准备认证文件:

# 安装httpd-tools 依赖包
yum search htpasswd   # 查看htpasswd的依赖包
yum install httpd-tools

# 创建htpasswd文件 [root@bogon nginx]# mkdir /etc/nginx [root@bogon nginx]# vim /etc/nginx/htpasswd
# 制作密码 [root@bogon nginx]# htpasswd -m /etc/nginx/htpasswd bob New password: Re-type new password: Adding password for user bob
# 查看密码 [root@bogon nginx]# cat /etc/nginx/htpasswd bob:$apr1$gfaAYD95$eCjdkxQ9DcSPBHfGWO3mk1

配置文件,访问b目录必须输入用户名和验证码:

location /b{
    auth_basic ”登陆验证";
    auth_basic_user_file /etc/nginx/htpasswd;
} 

测试:

 


日志管理

Nginx访问日志主要有两个参数控制:

1) log_format:用来定义记录日志的格式,可以定义多种日志格式,取不同名字即可

log_format log_name string
# 定义log_json 格式
log_format log_json '{ "@timestamp": "$time_local", '
'"remote_addr": "$remote_addr", '
'"referer": "$http_referer", '
'"request": "$request", '
'"status": $status, '
'"bytes": $body_bytes_sent, '
'"agent": "$http_user_agent", '
'"x_forwarded": "$http_x_forwarded_for", '
'"up_addr": "$upstream_addr",'
'"up_host": "$upstream_http_host",'
'"up_resp_time": "$upstream_response_time",'
'"request_time": "$request_time"'
' }';

日志输出路径:

server {
        listen       80;
        server_name  nginx.test.com;
        charset utf8;
     # 输出到access_log文件,且以log_json定义的格式输出到文件access_json文件中 access_log logs/access_json.log log_json; }

 

转载于:https://www.cnblogs.com/fqh202/p/9995706.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值