1. Nginx是什么?
- Nginx是一款轻量级的Web服务器、也是一款反向代理服务器。
关于正向代理和反向代理解释
2. Nginx能干什么?
Nginx能干的事情很多,这里简单罗列一些:
- 可直接支持Rails和PHP的程序;
- 可以作为HTTP的反向代理服务器;
- 作为负载均衡的服务器;
- 作为邮件代理服务器;
- 帮助实现前段动静分离;
3. Nginx特点
高稳定、高性能、资源占用少、功能丰富、模块化的结构、支持热部署
4. Nginx安装
1. 安装gcc(一款功能强大、性能优越的多平台编译器),详情:gcc
备注:可以输入【gcc -v】 查询版本信息,看系统是否自带安装
yum -y install gcc
2. 安装pcre(兼容正则表达式库),详情:PCRE
yum -y install pcre-devel
3. 安装zlib(提供数据压缩用的函式库),详情:zlib
yum -y install zlib zlib-devel
4. 安装openssl(一个安全套接字层密码库),如需使用ssl,才需要安装。详情openssl
yum -y install openssl openssl-devel
以上依赖库综合命令
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
5. 下载源码包,选择稳定版本,解压缩安装
- 下载:
wget http://nginx.org/download/nginx-1.12.0.tar.gz
- 解压:
tar -zxvf nginx-1.12.0.tar.gz
- 切换到nginx目录下,输入以下命令:
./configure 执行检查
make 编译工程
make install 安装
whereis nginx 查看安装位置
切换到安装目录:
cd /usr/local/nginx/
再切换到sbin目录:
cd sbin
启动nginx
nginx
查看进程,对这行命令不解的可以看:linux命令ps aux|grep xxx详解
ps aux| grep nginx
在浏览器输入ip地址:(记得要在防火墙开放80端口,否则会访问失败,具体请参考下方第6条的增加防火墙的访问权限)
6. Nginx常用命令
- 测试配置文件
安装路径下/nginx/sbin/nginx -t
- 启动命令
安装路径下/nginx/sbin/nginx
- 停止命令
安装路径下/nginx/sbin/nginx -s stop
或者是:nginx -s quit
- 重启命令
安装路径下/nginx/sbin/nginx -s reload
- 查看进程命令
ps -ef|grep nginx 或者 ps aux| grep nginx
- 平滑重启(用户在连接的时候感受不到断开,内部原理是旧进程依旧在运行的同时新进程开启,新进程开启成功,然后关闭旧进程)
kill -HUP [Nginx主进程号(即查看进程命令查到的PID)]
- 增加防火墙的访问权限
vim /etc/sysconfig/iptables
编辑
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
保存退出
重启防火墙
service iptables restart
7. Nginx虚拟域名配置及测试验证
- 编辑
vim /usr/local/nginx/conf/nginx.conf
增加
include vhost/*.conf
保存退出
- 在usr/local/nginx/conf目录新建vhost文件夹
- 创建域名转发配置文件
文件名:www.kingmall.com.conf
server {
listen 80;
autoindex on;
server_name www.kingmall.com;
access_log /usr/local/nginx/logs/access.log combined;
index index.html index.htm index.jsp index.php;
#root /devsoft/apache-tomcat-7.0.73/webapps/mmall;
#error_page 404 /404.html;
if ( $query_string ~* ".*[\;'\<\>].*" ){
return 404;
}
location = / {
root /product/front/mmall_admin_fe/dist/view;
index index.html;
}
location ~ .*\.(html|htm)$ {
root /product/front/mmall_admin_fe/dist/view;
index index.html;
}
location / {
proxy_pass http://192.168.1.5:8080;
add_header Access-Control-Allow-Origin '*';
}
}
- 启动/重启验证
启动:${nginx}/sbin/nginx
重启:${nginx}/sbin/nginx -s reload
注:${nginx}代表安装在系统中的路径,例如:/usr/local/nginx
-
访问验证
- 指向目录
在vhost目录下增加image.kingmall.com.conf文件:
server {
listen 80;
autoindex off;
server_name image.kingmall.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 *;
}
}
切换到ftpfile目录下,下载几张图片:
重启nginx,浏览器输入hosts里面配置的域名:image.kingmall.com会出现欢迎index.html。如果加上“/图片名”,则是出现下载的图片。
美颜暴击,鹿哥6到飞起O(∩_∩)O~~~
比心❤
❤❤❤
8. Nginx本地玩耍注意事项
可以配置域名转发,但请一定要配置hosts,设置完成之后最好重启浏览器。如果不配置hosts,就默认走dns,很明显肯定是解析不到的。hosts是我们本地的一个小的dns列表,hosts优先于dns,hosts列表不存在的域名,才会去dns服务器查找。
-
客户端是Windows系统:
找到目录:C:\Windows\System32\drivers\etc\hosts编辑如下所示后保存:
- 客户机是linux系统:
- 输入:vim /etc/hosts
- 同上图windows一样配置域名和对应ip。
- 测试可以使用:wget www.kingmall.com 如果连接成功代表ok!