[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;

最新文章

  1. 测试人员如何搭建Selenium-Grid2环境(参考Java)
  2. [转+原]chrony
  3. 20145207 《Java程序设计》第二周学习总结
  4. html 实时监控发送数据
  5. c++中的 extern "C"(转载)
  6. Mysql几种索引类型的区别及适用情况
  7. 2876: [Noi2012]骑行川藏 - BZOJ
  8. 设置一个View的背景图片的集中方法
  9. POJ 1798 Truck History
  10. JavaScript 初识Promise 对象
  11. POJ3342——Party at Hali-Bula
  12. 穷举 迭代 while
  13. TensorFlow从1到2(七)线性回归模型预测汽车油耗以及训练过程优化
  14. JDBC事务(三)ThreadLocal绑定Connection
  15. iOS-实现后台长时间运行
  16. RabbitMQ性能优化
  17. EOS开发基础之一:源代码下载与开发环境搭建
  18. Chemical table CodeForces - 1012B
  19. .Net Excel操作之NPOI(二)常用操作封装
  20. Java考试题之十

热门文章

  1. 鲜贝7.3--Xshell安装
  2. 浅谈DFS序
  3. html头部标签汇总
  4. hdu6468 dfs剪枝 or char数组 or 构造
  5. AGC008E Next or Nextnext(组合计数,神奇思路)
  6. Vue+Element UI 实现视频上传
  7. IPv6 地址生命周期
  8. 物联网架构成长之路(39)-Bladex开发框架环境搭建
  9. 小小见解之python循环依赖
  10. MAT 4378 – MAT 5317, Analysis of categorical