本Nginx的安装配置所在系统是RedHat系的CentOS,下列步骤都默认在root权限下
Nginx的简介:Nginx是一款轻量级Web服务器、也是一款反向代理服务器,Nginx可直接支持Rails和PHP的程序、可作为HTTP反向代理服务器、可作为负载均衡服务器、作为邮件代理服务器、帮助实现前端动静分离。
Nginx特点:高稳定、高性能、资源占用少、功能丰富、模块化结构、支持热部署
要安装Nginx,需要先安装Nginx的依赖:gcc、pcre、zlib、openssl(如需支持ssl,才需安装openssl)
1.综合命令就是:yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
然后等待系统自动安装完毕
2.下载Nginx的源代码,选择自己所需版本,解压缩安装,网址:http://www.nginx.org/
3.下载完成之后,通过命令(cd /xxx/xxx)去到所下载的目录对压缩包解压,命令:tar -zxvf nginx-1.10.0.tar.gz
4.通过命令(cd /xxx/xxx)进入nginx的目录之后,执行命令:./configure(是否需要sudo权限看具体环境所决定,因本机在root环境所以不需要加sudo)
也可以指定安装目录,在上条命令之后增加参数--prefix=/usr/nginx
不指定目录则默认安装在/usr/local/nginx(可通过命令whereis nginx查询)
5.继续执行命令:make
6.再执行命令:make install
到此为止,nginx的安装与配置就完成了,接下来启动nginx验证一下。
1.通过命令:cd /usr/local/nginx进入nginx的安装目录
2.通过命令进入它的子目录:cd sbin/
3.通过命令:./nginx正式启动nginx
4.因为nginx默认端口为80,则可以在本地机器浏览器上输入url:127.0.0.1:80(如果不在本机浏览器,则输入nginx服务机器的ip地址)来进行访问,看到以下页面则代表成功
启动成功之后就可以使用Nginx反向代理服务器来解析域名了。
1.配置nginx.conf
命令如下:
cd /usr/local/nginx(进入nginx安装目录)
cd conf(进入conf目录)
mkdir vhost(创建vhost文件夹)
vim nginx.conf(修改nginx的配置文件)
在配置文件中添加该语句:include vhost/*.conf;(不能漏分号) 这语句的意思是把vhost文件夹下的所有.conf文件加载过来(注意是.conf后缀名的文件),这么做的原因是方便以后维护,把每个域名做成一个.conf文件,通过主配置include进来,这样以后想维护某个域名,就只需直接对那个对应的.conf进行操作,而不会影响到其它的域名,且文件不会过于臃肿。这跟Spring的配置文件类似,Spring配置文件通过把负责各个模块功能的文件include进去,从而避免配置文件过于复杂臃肿。
2.添加一些域名来测试
命令:vim /etc/hosts (编辑hosts文件)
进入文件之后,添加以下信息
具体的ip地址视您本机的情况所定,后面的域名也可以按您需求所修改
2.创建各个.conf文件
命令:cd vhost(进入vhost文件夹,刚才在上文已经创建了的,里面没有内容,现在要添加内容)
命令:vim www.baidu.com.conf(创建该文件并编辑)
在文件里添加以下信息
server {
listen 80;
autoindex on;
server_name www.baidu.com;
access_log /usr/local/nginx/logs/access.log combined;
index index.html index.htm index.jsp index.php;
#error_page 404 /404.html;
if ( $query_string ~* ".*[\;'\<\>].*" ){
return 404;
}
location / {
proxy_pass http://127.0.0.1:8080;
add_header Access-Control-Allow-Origin *;
}
}
3. :wq保存文件退出之后,需要重启nginx服务器
命令: ../../sbin/nginx -s reload
3.通过浏览器测试
4.上面的例子是通过解析域名,代理到网页,下面举个nginx转发到本地文件
命令:vim image.baidu.com.conf(创建该文件并编辑)
在文件下添加以下信息
server {
listen 80;
autoindex off;
server_name image.baidu.com;
access_log /usr/local/nginx/logs/access.log combined;
index index.html index.htm index.jsp index.php;
#error_page 404 /404.html;
if ( $query_string ~* ".*[\;'\<\>].*" ){
return 404;
}
location ~ /(mmall_fe|mmall_admin_fe)/dist/view/* {
deny all;
}
location / {
root /ftpfile/;
add_header Access-Control-Allow-Origin *;
}
}
功能是当用户输入image.baidu.com的时候,转发到本地的/ftpfile/文件,想了解ftp服务器的可参考本人上一篇博文。
5.然后操作就跟上面一致
:wq保存文件退出之后,需要重启nginx服务器
命令: ../../sbin/nginx -s reload
6.通过网址访问:
Nginx的安装配置以及使用已经介绍完了,下面来讲讲注意事项:
每个域名的.conf的配置文件当中都有一个autoindex on或autoindex off的配置,那么到底是on还是off呢?
autoindex代表自动创建索引,当资源转移到文件之后,当是on的时候,则该主文件页面下的所有索引都被自动创建出来了,也就是能访问该文件下的所有内容了,虽然前端的资源,例如js等源码可以被访问,但是索引能被访问很容易被穷举掉。除非有这样的业务需求(例如下载,maven下载就是如此),否则就把它设为off.当设为off之后,用户想访问该
文件里的下一级时,浏览器会显示403Forbidden没有权限。但是直接通过网址域名来访问其子目录是可以的,只不过是不能通过主页面进入下一级。
此文到此结束,祝工作顺利,欢迎大神一起讨论