实验环境:
OS: CentOS 6.6
nginx:nginx-1.6.2.tar.gz
前期准备:
安装开发包组件
[iyunv@1inux tmp]# yum -y groupinstall "Development tools" "Server Platform Development"
[iyunv@1inux tmp]# yum -y install pcre-devel
一、 编译安装:
[iyunv@1inux tmp]# useradd -r nginx //添加nginx系统用户
[iyunv@1inux tmp]# tar xf nginx-1.6.2.tar.gz
[iyunv@1inux tmp]# cd nginx-1.6.2
[iyunv@1inux nginx-1.6.2]# ./configure --help //获取帮助
[iyunv@1inux nginx-1.6.2]# mkdir -pv /var/tmp/nginx/{client,proxy,fastcgi,uwsgi} //创建编译安装需要的目录
1
[iyunv@1inux nginx-1.6.2]# ./configure --prefix=/usr/local/nginx --conf-path=/etc/nginx/nginx.conf --user=nginx --group=nginx --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --with-http_flv_module --with-http_mp4_module --http-client-body-temp-path=/var/tmp/nginx/client --http-proxy-temp-path=/var/tmp/nginx/proxy --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi
添加path路径
1
[iyunv@1inux nginx]# echo "export PATH=/usr/local/nginx/sbin/nginx:$PATH" > /etc/profile.d/nginx.sh
加载:
1
[iyunv@1inux nginx]# . /etc/profile.d/nginx.sh
启动nginx
1
2
3
4
[iyunv@1inux nginx]# /usr/local/nginx/sbin/nginx
[iyunv@1inux nginx]# ss -tunlp | grep :80
tcp LISTEN 0 128 *:80 *:* users:(("nginx",52985,6),("nginx",52986,6))
[iyunv@1inux nginx]#
查看nginx启动进程情况
1
2
3
4
5
[iyunv@1inux nginx]# ps aux | grep nginx
root 52985 0.0 0.1 45044 1064 ? Ss 03:54 0:00 nginx: master process /usr/local/nginx/sbin/nginx
nginx 52986 0.0 0.1 45472 1636 ? S 03:54 0:00 nginx: worker process
root 52991 0.0 0.0 103252 836 pts/8 S+ 03:55 0:00 grep nginx
[iyunv@1inux nginx]#
1
2
3
4
5
6
7
8
9
10
11
12
13
[iyunv@1inux nginx]# /usr/local/nginx/sbin/nginx -h //查看nginx 选项
nginx version: nginx/1.6.2
Usage: nginx [-?hvVtq] [-s signal] [-c filename] [-p prefix] [-g directives]
Options:
-?,-h : this help
-v : show version and exit
-V : show version and configure options then exit
-t : test configuration and exit
-q : suppress non-error messages during configuration testing
-s signal : send signal to a master process: stop, quit, reopen, reload
-p prefix : set prefix path (default: /usr/local/nginx/)
-c filename : set configuration file (default: /etc/nginx/nginx.conf)
-g directives : set global directives out of configuration file
常用配置指令:
server {
} //定义一个虚拟主机
2、listen //定义监听端口
listen address[:port];
listen port;
3、server_name NAME [...]; 【定义服务器主机名----只能用在server中】
后可跟多个主机名:名称还可以使用正则表达式(~)或通配符,检查标准如下
(1)先做精确匹配检查;
(2)左侧通配符匹配检查;*.1inux.com
(3) 右侧通配符匹配检查;如 mail.*
(4) 正则表达式匹配检查:如 ~^.*\.1inux.com\.com$
(5) default_server;
--------------------------------------------------------
编辑配置文件 在http {} 中添加如下:
server {
listen 888;
server_name 888.1inux.com;
root "/vhost/888/html/";
}
重新加载
[iyunv@1inux nginx]# /usr/local/nginx/sbin/nginx -s reload
[iyunv@1inux nginx]# ss -tnlp | grep nginx
LISTEN 0 128 *:888 *:* users:(("nginx",6568,11),("nginx",7659,11))
LISTEN 0 128 *:80 *:* users:(("nginx",6568,6),("nginx",7659,6))
[iyunv@1inux nginx]#
添加主页面
# echo "<h1> This is 888.1inux.com </h1>" > /vhost/888/html/index.html
然后访问如图
--------------------------------------------------------
4、root path;
设置资源路径映射;用于指明请求的URL所对应的资源所在的文件系统上的起始路径;
【其使用范围:http, server, location, if in location location 内的 优先级高于server】
5、location [ = | ~ | ~* | ^~ ] uri { ... }
location @name { ... }
使用范围: server, location
功能:允许根据用户请求的URL来匹配定义的各location; 匹配到时,此请求将被响应的location配置块中的配置所处理,例如做访问控制等功能
= : 精确匹配检查;
^~: RUI的前半部分匹配,不支持正则表达式;
~ : 正则表达式模式匹配检查,区分字符大小写;
~*: 正则表达式模块匹配检查,不区分字符大小写;
匹配的优先级: 精确匹配(=) ^~ ~ ~* 不带任何符号的location;
-------------------------
eg:
创建目录及文件
[iyunv@1inux /]# mkdir /vhost/{www,images/img} -pv
mkdir: created directory `/vhost'
mkdir: created directory `/vhost/www'
mkdir: created directory `/vhost/images'
mkdir: created directory `/vhost/images/img'
[iyunv@1inux /]# echo "<h1> This is www.1inux.com </h1>" >/vhost/www/index.html
[iyunv@1inux vhost]# tree /vhost
/vhost
|-- images
| `-- img
| |-- 1.jpg
| |-- 2.jpg
| `-- mylinux2.jpg
`-- www
`-- index.html
在配置文件中添加如下:
1
2
3
4
5
6
7
8
9
10
server {
listen 888;
server_name www.1inux.com ;
location / {
root "/vhost/www/";
}
location /img/ {
root "/vhost/images/";
}
}
1
2
3
4
5
[iyunv@1inux nginx]# /usr/local/nginx/sbin/nginx -s reload
[iyunv@1inux nginx]# ss -tnlp | grep "nginx"
LISTEN 0 128 *:888 *:* users:(("nginx",18499,11),("nginx",18803,11))
LISTEN 0 128 *:80 *:* users:(("nginx",18499,6),("nginx",18803,6))
[iyunv@1inux nginx]#
注意 此时 使用root 定义 访问 http://www.1inux.com:888/img/1.jpg 实际访问的Web服务器路径是:/vhost/images/目录下的/img/1.jpg
--------------------------------
6、alias path;
用于location配置段,定义路径别名
location /img/ {
root "/vhost/images/";
}
//http://www.1inux.com:888/img/2.jpg ====》 /vhost/images/img/2.jpg
//即 访问路径中的/img/对应的是 Web本地/vhost/images/目录下的目录
location /pic/ {
alias "/vhost/picture/";
}
//http://www.1inux.com:888/pic/2.jpg ====》 /vhost/picture/2.jpg
//即 访问路径中的/pic/目录对应的是 Web本地/vhost/picture/目录
7、index file;
默认主页面;
index index.php index.html;
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com