[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源码安装与使用的更多相关文章

  1. Nginx源码安装及调优配置

    导读 由于Nginx本身的一些优点,轻量,开源,易用,越来越多的公司使用nginx作为自己公司的web应用服务器,本文详细介绍nginx源码安装的同时并对nginx进行优化配置. Nginx编译前的优 ...

  2. Nginx源码安装及调优配置(转)

      导读 由于Nginx本身的一些优点,轻量,开源,易用,越来越多的公司使用nginx作为自己公司的web应用服务器,本文详细介绍nginx源码安装的同时并对nginx进行优化配置. Nginx编译前 ...

  3. nginx源码安装方法

    nginx源码安装方法 安装方法如下 1.安装nginx必要的源码依赖软件包. yum -y install gcc gcc-c++ automake pcre pcre-devel zlib zli ...

  4. nginx源码安装

    1,首先解决系统环境: 安装rpm包组{CentOS6 跟开发相关的包组:} a.  Development Tools #yum groupinstall "Development Too ...

  5. nginx 源码安装的重启命令

    源码安装nginx就面临这样的麻烦,不能使用service nginx restart 来重启nginx,没办法只能重新加载下nginx. #/usr/local/nginx/sbin/nginx - ...

  6. nginx源码安装教程(CentOS)

    1.说明 官方源码安装说明:http://nginx.org/en/docs/configure.html 源码包下载地址:http://nginx.org/en/download.html 版本说明 ...

  7. nginx 源码安装以及后续升级https

    事情的来源是,公司要将网站从http升级到https,由于历史遗留原因,才发现现有的nginx是通过源码安装的,并没有安装ssl模块,需要现安装sll模块,这个nginx是整个公司最前端的一个代理,涉 ...

  8. Nginx源码安装配置

    Nginx web服务器简介 Nginx ("engine x") 是一个高性能HTTP 和 反向代理 服务器.IMAP.POP3.SMTP 服务器. Nginx 是由 Igor ...

  9. nginx 源码安装配置详解(./configure)

    在"./configure"配置中,"--with"表示启用模块,也就是说这些模块在编译时不会自动构建,"--without"表示禁用模块, ...

  10. Nginx 源码安装和调优

    常见web架构: LAMP  =Linux+Apache+Mysql+PHP LNMP  =Linux+Nginx+Mysql+PHP   nginx概述: 知道:1  不知道:2 Nginx (&q ...

随机推荐

  1. Appium 解决微信公众号、小程序切换 webview 后无法定位元素的问题

    如何切换webview进入小程序请参考https://testerhome.com/topics/12003 脚本思路:进入webview后会存在多个handle同Web页签一样,获取所有的handl ...

  2. MySQL 王者晋级之路

    3.2 Query Cache: 3.3 存储引擎 一.TokuDB的特点: – 插入性能加快20到80倍– 压缩数据减少存储空间– 数据量可扩展到几个TB– 不会产生索引碎片– 支持Hot Colu ...

  3. MySQL 行格式

    以 MySQL 默认的存储引擎 InnoDB 为例 InnoDB 包含以下四种行格式 Compact Redundant Dynamic Compressed 指定行格式 CREATE TABLE 表 ...

  4. SQL Server关系的创建

    如果两个表的相关列都是主键或具有唯一约束,创建的就是一对一关系. 如果只有一列具有主键或唯一约束,则创建的时一对多关系 关联字段的字符类型必须相同. 1. 一对一关系 USE [Howie] crea ...

  5. 内网Metasploit映射到外网

    下载frp Github项目地址:https://github.com/fatedier/frp 找到最新的releases下载,系统版本自行确认. 下载方法: wget https://github ...

  6. VS2017项目升级 error LNK2005: "public: __thiscall ATL::CTime::

    我是将项目升级到从VS2012 升级VS2017, 报错如下 1>atlsd.lib(atltime.obj) : error LNK2005: "public: __thiscall ...

  7. VBA基础 - 函数和模块

    概要 对于一般的 VBA 程序来说, 可能一个或几个函数就行了. 毕竟, VBA 只是作为 excel 的辅助工具来用的. 但是, 随着 VBA 写的越来越多, 用个工程来管理就有必要了, 而一个代码 ...

  8. hive on spark 释放session资源

    背景 启动hive时,可以看到2.0以后的版本,将要弃用mr引擎,官方建议使用spark,tez等引擎. spark同时支持批式流式处理,可以减少学习成本.所以选用了spark作为执行引擎. hive ...

  9. WebApplicationInitializer启动分析

    从Servlet 3.0 开始Tomcat已经支持注解式的配置.了解下,在注解的配置方式下,Web是怎样启动起来的. 通过注解配置一个Web应用 下面是一个通过注解实现一个简单的Web应用 publi ...

  10. 使用 Floccus 插件和坚果云同步 Chrome 类浏览器书签

    使用 Floccus 插件和坚果云同步 Chrome 类浏览器书签 魏刘宏  2019 年 11 月 22 日 如题,本文讨论在使用 Chromium 内核的浏览器上,使用 Floccus 插件,配合 ...