问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

nginx 配置域名之后怎么解决

发布网友 发布时间:2022-04-21 17:57

我来回答

1个回答

热心网友 时间:2022-04-12 21:38

方法一:多个.conf方法(优点是灵活,缺点就是站点比较多配置起来麻烦)
这里以配置2个站点(2个域名)为例,n 个站点可以相应增加调整,假设:
IP地址: 192.168.1.100
域名1 example1.com 放在 /www/example1
域名2 example2.com 放在 /www/example2

配置 nginx virtual hosting 的基本思路和步骤如下:
把2个站点 example1.com, example2.com 放到 nginx 可以访问的目录 /www/
给每个站点分别创建一个 nginx 配置文件 example1.com.conf,example2.com.conf, 并把配置文件放到 /usr/local/nginx/vhosts/
然后在 /usr/local/nginx/nginx.conf 里面加一句 include 把步骤2创建的配置文件全部包含进来(用 * 号)
重启 nginx
1、打开 /usr/local/nginx/nginix.conf 文件,在相应位置加入 include 把以上2个文件包含进来
user www www;
worker_processes 1;

# main server error log
error_log /usr/local/nginx/log/nginx/error.log ;
pid /usr/local/nginx/nginx.pid;

events {
worker_connections 51200;
}
# main server config
http {
include mime.types;
default_type application/octet-stream;
log_format main ‘$remote_addr – $remote_user [$time_local] $request ‘
‘”$status” $body_bytes_sent “$http_referer” ‘
‘”$http_user_agent” “$http_x_forwarded_for”‘;

sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
gzip on;

server {
listen 80;
server_name _;
access_log /usr/local/nginx/log/nginx/access.log main;
server_name_in_redirect off;
location / {
root /usr/share/nginx/html;
index index.html;
}
}
# 包含所有的虚拟主机的配置文件
include /usr/local/nginx/vhosts/*;
}

2、在 /usr/local/nginx 下创建 vhosts 目录
mkdir /usr/local/nginx/vhosts

3、在 /usr/local/nginx/vhosts/ 里创建一个名字为 example1.com.conf 的文件,把以下内容拷进去
server {
listen 80;
server_name example1.com www. example1.com;

access_log /www/access_ example1.log main;

location / {
root /www/example1.com;
index index.php index.html index.htm;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www/example1.com/$fastcgi_script_name;
include fastcgi_params;
}

location ~ /.ht {
deny all;
}
}

3、在 /usr/local/nginx/vhosts/ 里创建一个名字为 example2.com.conf 的文件,把以下内容拷进去
server {
listen 80;
server_name example2.com www. example2.com;

access_log /www/access_ example1.log main;

location / {
root /www/example2.com;
index index.php index.html index.htm;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www/example2.com/$fastcgi_script_name;
include fastcgi_params;
}

location ~ /.ht {
deny all;
}
}

5、重启 Nginx

/etc/init.d/nginx restart

方法二:动态目录方法(优点是方便,每个域名对应一个文件夹,缺点是不灵活)

这个简单的方法比起为每一个域名建立一个 vhost.conf 配置文件来讲,只需要在现有的配置文件中增加如下内容:

# Replace this port with the right one for your requirements
# 根据你的需求改变此端口
listen 80; #could also be 1.2.3.4:80 也可以是1.2.3.4:80的形式
# Multiple hostnames seperated by spaces. Replace these as well.
# 多个主机名可以用空格隔开,当然这个信息也是需要按照你的需求而改变的。
server_name star.yourdomain.com *.yourdomain.com http://www.*.yourdomain.com/;
#Alternately: _ *
#或者可以使用:_ * (具体内容参见本维基其他页面)
root /PATH/TO/WEBROOT/$host;
error_page 404 http://yourdomain.com/errors/404.html;
access_log logs/star.yourdomain.com.access.log;
location / {
root /PATH/TO/WEBROOT/$host/;
index index.php;
}
# serve static files directly

# 直接支持静态文件 (从配置上看来不是直接支持啊)
location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|html)$ {
access_log off;
expires 30d;
}
location ~ .php$ {
# By all means use a different server for the fcgi processes if you need to
# 如果需要,你可以为不同的FCGI进程设置不同的服务信息
fastcgi_pass 127.0.0.1:YOURFCGIPORTHERE;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /PATH/TO/WEBROOT/$host/$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_intercept_errors on;
}
location ~ /.ht {
deny all;
}

最后附另外一个二级域名匹配的方法

绑定域名
server_name *.abcd.com;
获取主机名
if ( $host ~* (.*).(.*).(.*))
{
set $domain $1;
}
定义目录
root html/abc/$domain/;
location /
{
root html/abcd/$domain;
index index.html index.php;
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
PSP三国无双2的问题 psp真三国无双2打出新战役问题 psp三国无双2 求高手解答 psp游戏机三国无双2问题 中指门起源 乐亭滨海浴场位置 乐亭金沙岛游玩攻略 一幅漫画图女人help飞机求救是什么意思 想画漫画~~但只知道要用a4的纸,什么规格啊,内框外框的也不知道怎么画... 表示生活平淡知足诗句 如何用shell将nginx配置文件中日志默认格式nginx-a... nginx access.log影响访问速度吗 nginx怎么强行修改access-control-allow-origin ngnix的access.log最大多少 nginx access.log中, 200 状态码 后面的那个数字... nginx 配置:access_log /home/serversoft/nginx/l... nginx access.log 日志怎么存储到数据库 nginx access日志ip是根据什么记录的 怎么修改nginx的access.log的时间格式 nginx access log 怎么直接输出到log服务器 nginx/logs/access.log 可以删除吗 Nginx遇上Access Denied提示怎么解决 带环疼不疼啊! 带环问题 可以去带环了吗? 关于带环的问题 华为畅享8换个后盖多少钱? 女性上环怎带进去的啊?环带在什么位置?可以详细... 带节育环需要注意什么 华为畅享8plus换电池教程 nginx 虚拟主机 怎么访问 Nginx怎么从Cookie里解析UserId放到Access Log里 AI中的两个路径怎么合并成一个路径? 虚拟世界 作文 ai怎么将一个图层中的所有路径合并到一起?有图。 有关于“虚拟世界”的动画片吗? AI里有合并图层快捷键吗? 虚拟世界,无形的牢笼作文600 AI 图层里怎么合并路径 游戏的世界真精彩,虚拟游戏题材的动漫佳作都有哪些? 在AI如何把多个路径合成一个路径 以虚拟世界为题写一篇英语作文 AI如何将多个路径合并成一个路径?就像PS中的合并... 有关虚拟世界的电影 AI里面怎么合并图层 如何看待电脑中的虚拟世界的作文800 AI里可以合并图层的吗? 800字作文虚拟与现实 AI的子图层怎么合并一起? 找一部电影,关于虚拟世界建造的,男主角死掉之后...