nginx源码安装与使用
[root@localhost ~]# yum -y install pcre-devel zlib-devel openssl openssl-devel gcc*
[root@localhost ~]# useradd -r -s /sbin/nologin nginx
[root@localhost nginx-1.12.2]# cd nginx-1.12.2
[root@localhost nginx-1.12.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/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
[root@localhost nginx-1.12.2]# make && make install
[root@localhost nginx-1.12.2]# mkdir -pv /var/tmp/nginx/{client,fastcgi,proxy,uwsgi}
mkdir: 已创建目录 "/var/tmp/nginx"
mkdir: 已创建目录 "/var/tmp/nginx/client"
mkdir: 已创建目录 "/var/tmp/nginx/fastcgi"
mkdir: 已创建目录 "/var/tmp/nginx/proxy"
mkdir: 已创建目录 "/var/tmp/nginx/uwsgi"
[root@localhost nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
[root@localhost nginx-1.12.2]# nginx
[root@localhost ~]# ss -tnl |grep 80
LISTEN 0 128 *:80 *:*
nginx配置。
[root@localhost ~]# cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
[root@localhost ~]# vi /etc/nginx/nginx.conf
server {
listen 8080;
server_name www.ljj.com;
}
location / {
root /webserver/;
index index.html index.htm;
}
[root@localhost ~]# mkdir /webserver
[root@localhost ~]# nginx -s reload
windows端访问:www.ljj.com
nginx基于basic认证的配置
[root@localhost data]# vi /etc/nginx/nginx.conf
server {
listen 80;
server_name 192.168.1.222;
location /data/
{
root /locationtest1/;
index index.html index.htm;
auth_basic "welcome to";
auth_basic_user_file /locationtest1/data/.htpasswd;
}
}
[root@localhost ~]# cd /locationtest1/data/
[root@localhost data]# ls
index.html
[root@localhost data]# cat index.html
192.168.1.334
[root@localhost data]# htpasswd -c -d /locationtest1/data/.htpasswd lishi
New password:
Re-type new password: #密码123
Adding password for user lishi
[root@localhost data]# nginx -s reload
windows端访问:192.168.1.222/data/
nginx地址重写
[root@localhost data]# vi /etc/nginx/nginx.conf
server {
listen 80;
server_name www.ljj.com;
location /data/
{
root /locationtest1/;
rewrite ^(.*) http://www1.ljj.com$1 last;
index index.html index.htm;
}
}
server {
listen 80;
server_name www1.ljj.com;
location /data/
{
root /locationtest1/;
index index.html index.htm;
}
}
windows端测试:www.ljj.com/data/会跳转至www1.ljj.com/data/
路径别名
[root@localhost www]# vi /etc/nginx/nginx.conf
server {
listen 80;
server_name bbs.ljj.com;
root /wb1/data;
location /www/
{
alias /ljj/;
index index.html index.htm;
}
}
[root@localhost data]# mkdir -p /wb1/data/www
[root@localhost data]# cd /wb1/data/www/
[root@localhost www]# vi index.html
[root@localhost data]# ls
ljj www
[root@localhost data]# pwd
/wb1/data
[root@localhost data]# ls www/ ljj/
ljj/:
index.html
www/:
index.html
我正常的主页目录是在/wb1/data/www下,如果有没有路径别名,请求http://www1.ljj.com/www/,响应的就是/wb1/data/www/下的主页。
如果有路径别名请求http://www1.ljj.com/www/,那就是/ljj/下的主页,
Nginx虚拟目录alias和root目录
nginx是通过alias设置虚拟目录,在nginx的配置中,alias目录和root目录是有区别的:
1)alias指定的目录是准确的,即location匹配访问的path目录下的文件直接是在alias目录下查找的;
2)root指定的目录是location匹配访问的path目录的上一级目录,这个path目录一定要是真实存在root指定目录下的;
3)使用alias标签的目录块中不能使用rewrite的break(具体原因不明);另外,alias指定的目录后面必须要加上"/"符号!!
4)alias虚拟目录配置中,location匹配的path目录如果后面不带"/",那么访问的url地址中这个path目录后面加不加"/"不影响访问,访问时它会自动加上"/";
但是如果location匹配的path目录后面加上"/",那么访问的url地址中这个path目录必须要加上"/",访问时它不会自动加上"/"。如果不加上"/",访问就会失败!
5)root目录配置中,location匹配的path目录后面带不带"/",都不会影响访问。
调整用户浏览的url
[root@localhost nginx]# vi nginx.conf
server {
listen 80;
server_name www.ljj.com;
location /data/
{
root /locationtest1/;
index index.html index.htm;
}
}
server {
listen 80;
server_name ljj.com;
rewrite ^/(.*) http://www.ljj.com/$1 permanent;
}
server {
listen 80;
location / {
root /locationtest1/data/;
index index.html index.htm;
}
}
windows端访问:ljj.com/data/会跳转至www.ljj.com/data/
Nginx域名镜像
server {
listen 80;
server_name www.ljj.com;
root /locationtest1;
location ^~ /data
{
rewrite ^/data(.*) http://home.ljj.com/data1$1 last;
index index.html index.htm;
}
}
server {
listen 80;
server_name home.ljj.com;
location /data1
{
root /ngx;
index index.html index.htm;
}
}
server {
listen 80;
server_name www1.ljj.com;
root /wb1/data;
location /www/
{
rewrite ^/www(.*) http://home.ljj.com/data1$1 last;
index index.html index.htm;
}
}
win端访问:www.ljj.com/data跳转至http://home.ljj.com/data1/
win端访问:www1.ljj.com/www跳转至http://home.ljj.com/data1/
目录自动添加/
[root@localhost ~]# mkdir -p /web5/data/
[root@localhost ~]# cd /web5/data/
[root@localhost data]# vi index.html
/web5/data/
[root@localhost nginx]# vi nginx.conf
server {
listen 80;
server_name web.ljj.com;
root /web5;
location ^~ /data
{
if (-d $request_filename)
{
rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
}
}
}
win端访问:web.ljj.com/data/
目录合并
[root@localhost nginx]# vi nginx.conf
server
{
listen 80;
server_name sina.ljj.com;
root /sina;
location ^~ /shohu
{
rewrite ^/shohu-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /shohu/$1/$2/$3/$4/$5/$6.html last;
}
}
[root@localhost ~]# mkdir /sina/shohu/12/23/34/45/56/67/ -p
[root@localhost ~]# cd /sina/shohu/12/23/34/45/56/67/
[root@localhost 67]# vi /sina/shohu/12/23/34/45/56/9.html
/sina/shohu/12/23/34/45/56

防盗链
server {
listen 80;
server_name baidu.ljj.com;
root /locationtest1;
location ~* ^.+\.(gip|jpg|png|swf|flv|rar|zip)$ #设置防盗链文件类型,自行修改,每个后缀用“|”符号分开!
{
valid_referers none blocked server_name *.ljj.com; #白名单,允许文件链出的域名白名单,自行修改成您的域名!*.ljj.com这个指的是子域名,域名与域名之间使用空格隔开!
if ($invalid_referer)
{
rewrite ^/ http://baidu.ljj.com/data/forbidden.png; #这个图片是盗链返回的图片,也就是替换盗链网站所有盗链的图片。这个图片要放在没有设置防盗链的网站上,因为防盗链的作用,这个图片如果也放在防盗链网站上就会被当作防盗链显示不出来了,盗链者的网站所盗链图片会显示X符号。
}
}
}
server {
listen 80;
server_name baidu.ljj.com;
root /locationtest1;
location /data/
{
valid_referers none blocked server_name *.ljj.com;
if ($invalid_referer)
{
rewrite ^/ http://baidu.ljj.com/data/forbidden.png;
}
}
}
基于浏览器实现分离的。
if($http_user_agent ~ Firefox)
rewrite ^(.*)$ /firefox/$1 break;
nginx源码安装与使用的更多相关文章
- Nginx源码安装及调优配置
导读 由于Nginx本身的一些优点,轻量,开源,易用,越来越多的公司使用nginx作为自己公司的web应用服务器,本文详细介绍nginx源码安装的同时并对nginx进行优化配置. Nginx编译前的优 ...
- Nginx源码安装及调优配置(转)
导读 由于Nginx本身的一些优点,轻量,开源,易用,越来越多的公司使用nginx作为自己公司的web应用服务器,本文详细介绍nginx源码安装的同时并对nginx进行优化配置. Nginx编译前 ...
- nginx源码安装方法
nginx源码安装方法 安装方法如下 1.安装nginx必要的源码依赖软件包. yum -y install gcc gcc-c++ automake pcre pcre-devel zlib zli ...
- nginx源码安装
1,首先解决系统环境: 安装rpm包组{CentOS6 跟开发相关的包组:} a. Development Tools #yum groupinstall "Development Too ...
- nginx 源码安装的重启命令
源码安装nginx就面临这样的麻烦,不能使用service nginx restart 来重启nginx,没办法只能重新加载下nginx. #/usr/local/nginx/sbin/nginx - ...
- nginx源码安装教程(CentOS)
1.说明 官方源码安装说明:http://nginx.org/en/docs/configure.html 源码包下载地址:http://nginx.org/en/download.html 版本说明 ...
- nginx 源码安装以及后续升级https
事情的来源是,公司要将网站从http升级到https,由于历史遗留原因,才发现现有的nginx是通过源码安装的,并没有安装ssl模块,需要现安装sll模块,这个nginx是整个公司最前端的一个代理,涉 ...
- Nginx源码安装配置
Nginx web服务器简介 Nginx ("engine x") 是一个高性能HTTP 和 反向代理 服务器.IMAP.POP3.SMTP 服务器. Nginx 是由 Igor ...
- nginx 源码安装配置详解(./configure)
在"./configure"配置中,"--with"表示启用模块,也就是说这些模块在编译时不会自动构建,"--without"表示禁用模块, ...
- Nginx 源码安装和调优
常见web架构: LAMP =Linux+Apache+Mysql+PHP LNMP =Linux+Nginx+Mysql+PHP nginx概述: 知道:1 不知道:2 Nginx (&q ...
随机推荐
- lua 9 parttern 字符极其简要的介绍
摘自:https://www.lua.org/pil/20.2.html 所有的字符和含义包括: . all characters %a letters %c control characters % ...
- MongoDB介绍(一)
MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功 ...
- ubuntu16.04matlab中文注释乱码的解决办法
中文注释乱码的原因是windows下的m文件采用的是gb2312编码,只要将所有的m文件转成 utf8文件,显示就正常了. 1.首先安装enca:sudo apt-get install enca 2 ...
- array 数组
- Python实现网络图形化界面多人聊天室 - Windows
Python实现网络图形化界面多人聊天室 - Windows 项目名称:网络多人聊天室图形界面版本 项目思路: server.py 服务端文件,主进程中,创建图形化界面,询问地址(主机名,端口),点击 ...
- 【day02】Xhtml
一.HTML实体(HTML Entites) 1.HTML实体:W3C规定在浏览器看到的特殊符号必须用HTML实体 单引号(') ===== ' 双引号(") ===== " ...
- python-1-基础认识
前言 将近2020年,python2即将不再更新,但是我们现在的python3也能非常受欢迎的!回顾一下2/3的区别: 1.python2 源码不标准,混乱,重复代码太多, 2.python3 统一 ...
- LeetCode707:设计链表 Design Linked List
爱写bug (ID:iCodeBugs) 设计链表的实现.您可以选择使用单链表或双链表.单链表中的节点应该具有两个属性:val 和 next.val 是当前节点的值,next 是指向下一个节点的指针/ ...
- JavaScript DOM 常用操作
1.理解DOM: DOM(Document Object Model ,文档对象模型)一种独立于语言,用于操作xml,html文档的应用编程接口. 怎么说,我从两个角度理解: 对于JavaScript ...
- vue 上传进度显示
参考资料: https://ask.csdn.net/questions/767017 https://www.cnblogs.com/best-fyx/p/11363506.html 我使用的是el ...